import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSTextAttachment } from "./NSTextAttachment.js";
import type { _NSTextContainer } from "./NSTextContainer.js";
import type { _NSTextLayoutManager } from "./NSTextLayoutManager.js";
import type { _NSTextLocation } from "./NSTextLocation.js";
import type { _NSView } from "./NSView.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
export declare class _NSTextAttachmentViewProvider extends _NSObject {
    static alloc(): _NSTextAttachmentViewProvider;
    static new(): _NSTextAttachmentViewProvider;
    init(): _NSTextAttachmentViewProvider;
    initWithTextAttachment$parentView$textLayoutManager$location$(textAttachment: _NSTextAttachment, parentView: _NSView | null, textLayoutManager: _NSTextLayoutManager | null, location: _NSTextLocation): _NSTextAttachmentViewProvider;
    /**
     * This is where subclasses should create their custom view hierarchy. Should never be called directly.
     */
    loadView(): void;
    /**
     * Invoked from -[NSTextAttachment attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:]
     */
    attachmentBoundsForAttributes$location$textContainer$proposedLineFragment$position$(attributes: _NSDictionary, location: _NSTextLocation, textContainer: _NSTextContainer | null, proposedLineFragment: CGRect, position: CGPoint): CGRect;
    textAttachment(): _NSTextAttachment | null;
    textLayoutManager(): _NSTextLayoutManager | null;
    location(): _NSTextLocation;
    /**
     * View instantiation The getter first invokes loadView if the view hasn't been set yet. Subclasses must call super if they override the setter or getter.
     */
    view(): _NSView | null;
    setView$(value: _NSView | null): void;
    /**
     * This property determines the text attachment bounds policy. If YES, -[NSTextAttachment attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:] consults the text attachment view provider for determining the bounds instead of using -bounds. NO by default
     */
    tracksTextAttachmentViewBounds(): boolean;
    setTracksTextAttachmentViewBounds$(value: boolean): void;
}
