import type { NobjcObject } from "objc-js";
import type { _NSColor } from "./NSColor.js";
import type { _NSControl } from "./NSControl.js";
import type { _NSText } from "./NSText.js";
import type { _NSTextContent } from "./NSTextContent.js";
import type { _NSTextFieldDelegate } from "./NSTextFieldDelegate.js";
import type { _NSUserInterfaceValidations } from "./NSUserInterfaceValidations.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSAttributedString } from "../Foundation/NSAttributedString.js";
import type { _NSNotification } from "../Foundation/NSNotification.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { NSLineBreakStrategy } from "./NSLineBreakStrategy.js";
import type { NSTextFieldBezelStyle } from "./NSTextFieldBezelStyle.js";
export declare class _NSTextField extends _NSControl {
    static alloc(): _NSTextField;
    static new(): _NSTextField;
    init(): _NSTextField;
    /**
     * Creates a non-wrapping, non-editable, non-selectable text field that displays text in the default system font. @param stringValue The title text to display in the field. @return An initialized text field object.
     */
    static labelWithString$(stringValue: _NSString): _NSTextField;
    /**
     * Creates a wrapping, non-editable, selectable text field that displays text in the default system font. @param stringValue The title text to display in the field. @return An initialized text field object.
     */
    static wrappingLabelWithString$(stringValue: _NSString): _NSTextField;
    /**
     * Creates a non-editable, non-selectable text field that displays attributed text. The line break mode of this field is determined by the attributed string's NSParagraphStyle attribute. @param attributedStringValue The attributed string to display in the field. @return An initialized text field object.
     */
    static labelWithAttributedString$(attributedStringValue: _NSAttributedString): _NSTextField;
    /**
     * Creates a non-wrapping editable text field. @param stringValue The initial contents of the text field, or empty string for an initially empty text field. @return An initialized text field object.
     */
    static textFieldWithString$(stringValue: _NSString): _NSTextField;
    selectText$(sender: NobjcObject | null): void;
    textShouldBeginEditing$(textObject: _NSText): boolean;
    textShouldEndEditing$(textObject: _NSText): boolean;
    textDidBeginEditing$(notification: _NSNotification): void;
    textDidEndEditing$(notification: _NSNotification): void;
    textDidChange$(notification: _NSNotification): void;
    /** @deprecated Use `-setTitle:` instead */
    setTitleWithMnemonic$(stringWithAmpersand: _NSString): void;
    placeholderString(): _NSString;
    setPlaceholderString$(value: _NSString): void;
    placeholderAttributedString(): _NSAttributedString;
    setPlaceholderAttributedString$(value: _NSAttributedString): void;
    backgroundColor(): _NSColor | null;
    setBackgroundColor$(value: _NSColor | null): void;
    drawsBackground(): boolean;
    setDrawsBackground$(value: boolean): void;
    textColor(): _NSColor | null;
    setTextColor$(value: _NSColor | null): void;
    bordered(): boolean;
    setBordered$(value: boolean): void;
    bezeled(): boolean;
    setBezeled$(value: boolean): void;
    editable(): boolean;
    setEditable$(value: boolean): void;
    selectable(): boolean;
    setSelectable$(value: boolean): void;
    delegate(): _NSTextFieldDelegate | null;
    setDelegate$(value: _NSTextFieldDelegate | null): void;
    acceptsFirstResponder(): boolean;
    bezelStyle(): NSTextFieldBezelStyle;
    setBezelStyle$(value: NSTextFieldBezelStyle): void;
    /**
     * The preferredMaxLayoutWidth determines the maximum width of the intrinsicContentSize. If the text field wraps, the intrinsic height will be large enough to show the entire text contents at that width. The default is 0, which implies no maximum preferred width.
     */
    preferredMaxLayoutWidth(): number;
    setPreferredMaxLayoutWidth$(value: number): void;
    /**
     * For text that wraps (see NSCell’s lineBreakMode), this property determines the maximum number of lines to display. A value of 0 means there is no limit, which is the default, and the text fills the cell’s bounds. If the text reaches the number of lines allowed, or the height of the container cannot accommodate the number of lines needed, the text will be clipped (or truncated if truncatesLastVisibleLine is set). The value of this property also affects -[NSControl sizeThatFits:], -[NSView fittingSize] and -[NSView intrinsicContentSize]. Most importantly, if the value of this property is not 1, multiple lines may be used to find the field’s intrinsicContentSize. Prior to 10.11, the intrinsicContentSize would be determined as if the maximumNumberOfLines was 1.
     */
    maximumNumberOfLines(): number;
    setMaximumNumberOfLines$(value: number): void;
    /**
     * Maps to -[NSParagraphStyle allowsDefaultTighteningForTruncation] in rendering and sizing the text field. Ignored when the content value is an attributed string.
     */
    allowsDefaultTighteningForTruncation(): boolean;
    setAllowsDefaultTighteningForTruncation$(value: boolean): void;
    /**
     * Specifies the line break strategies that may be used for laying out the text in this text field. If this property is not set, the default for non-editable and selectable text fields is NSLineBreakStrategyStandard and the default for editable text fields is NSLineBreakStrategyNone. If the text field contains an attributed string value with paragraph style(s) that specify a set of line break strategies, the set of strategies in the paragraph style(s) will be used instead of the set of strategies defined by this property.
     */
    lineBreakStrategy(): NSLineBreakStrategy;
    setLineBreakStrategy$(value: NSLineBreakStrategy): void;
    /** Default is YES. Configures its field editor to work with Writing Tools. */
    allowsWritingTools(): boolean;
    setAllowsWritingTools$(value: boolean): void;
    /** Default is NO. */
    allowsWritingToolsAffordance(): boolean;
    setAllowsWritingToolsAffordance$(value: boolean): void;
    /**
     * An array of NSStrings that will be animated to cycle through one by one when the textField is first responder. No animation happend when there is only string in the array, or when text field is not first responder. The text field's placeholderString property points to the first string in placeholderStrings.
     */
    placeholderStrings(): _NSArray;
    setPlaceholderStrings$(value: _NSArray): void;
    /**
     * An array of NSStrings that will be animated to cycle through one by one when the textField is first responder. No animation happend when there is only string in the array, or when text field is not first responder. The text field's placeholderString property points to the first string in placeholderStrings.
     */
    placeholderAttributedStrings(): _NSArray;
    setPlaceholderAttributedStrings$(value: _NSArray): void;
    /**
     * Specifies the behavior for resolving ``NSTextAlignment.natural`` to the visual alignment. When set to ``true``, the resolved visual alignment is determined by the resolved base writing direction; otherwise, it is using the user’s preferred language. The default value is ``false``.
     */
    resolvesNaturalAlignmentWithBaseWritingDirection(): boolean;
    setResolvesNaturalAlignmentWithBaseWritingDirection$(value: boolean): void;
    automaticTextCompletionEnabled(): boolean;
    setAutomaticTextCompletionEnabled$(value: boolean): void;
    allowsCharacterPickerTouchBarItem(): boolean;
    setAllowsCharacterPickerTouchBarItem$(value: boolean): void;
    allowsEditingTextAttributes(): boolean;
    setAllowsEditingTextAttributes$(value: boolean): void;
    importsGraphics(): boolean;
    setImportsGraphics$(value: boolean): void;
}
export interface _NSTextField extends _NSUserInterfaceValidations, _NSTextContent {
}
