import type { _NSImage } from "./NSImage.js";
import type { _NSTextAttachmentViewProvider } from "./NSTextAttachmentViewProvider.js";
import type { _NSTextContainer } from "./NSTextContainer.js";
import type { _NSTextLocation } from "./NSTextLocation.js";
import type { _NSView } from "./NSView.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
export interface _NSTextAttachmentLayout {
    /**
     * Returns the image object rendered at bounds inside textContainer. It should return an image appropriate for the target rendering context derived by arguments to this method. The NSTextAttachment implementation returns -image when non-nil. If -image==nil, it returns an image based on -contents and -fileType properties.
     */
    imageForBounds$attributes$location$textContainer$?(bounds: CGRect, attributes: _NSDictionary, location: _NSTextLocation, textContainer: _NSTextContainer | null): _NSImage | null;
    /**
     * Returns the layout bounds. The bounds origin is interpreted to match position inside proposedLineFragment. The NSTextAttachment implementation returns -bounds if not CGRectZero; otherwise, it derives the bounds value from image.size. Conforming objects can implement more sophisticated logic for negotiating the frame size based on the available container space and proposed line fragment rect.
     */
    attachmentBoundsForAttributes$location$textContainer$proposedLineFragment$position$?(attributes: _NSDictionary, location: _NSTextLocation, textContainer: _NSTextContainer | null, proposedLineFragment: CGRect, position: CGPoint): CGRect;
    /**
     * Returns the text attachment view provider corresponding to -fileType. The default implementation queries the text attachment view provider class via +[NSTextAttachment textAttachmentViewProviderClassForFileType:]. When non-nil, it instantiates a view, then, fills properties declared in NSTextAttachmentViewProvider if implemented
     */
    viewProviderForParentView$location$textContainer$?(parentView: _NSView | null, location: _NSTextLocation, textContainer: _NSTextContainer | null): _NSTextAttachmentViewProvider | null;
}
