import type { NobjcObject } from "objc-js";
import type { _NSCell } from "./NSCell.js";
import type { _NSEvent } from "./NSEvent.js";
import type { _NSFont } from "./NSFont.js";
import type { _NSText } from "./NSText.js";
import type { _NSView } from "./NSView.js";
import type { _NSAttributedString } from "../Foundation/NSAttributedString.js";
import type { _NSCoder } from "../Foundation/NSCoder.js";
import type { _NSFormatter } from "../Foundation/NSFormatter.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CGSize } from "../structs/CGSize.js";
import type { NSControlSize } from "./NSControlSize.js";
import type { NSLineBreakMode } from "./NSLineBreakMode.js";
import type { NSTextAlignment } from "./NSTextAlignment.js";
import type { NSWritingDirection } from "./NSWritingDirection.js";
export declare class _NSControl extends _NSView {
    static alloc(): _NSControl;
    static new(): _NSControl;
    init(): _NSControl;
    static cellClass(): NobjcObject | null;
    static setCellClass$(value: NobjcObject | null): void;
    initWithFrame$(frameRect: CGRect): _NSControl;
    initWithCoder$(coder: _NSCoder): _NSControl | null;
    sizeThatFits$(size: CGSize): CGSize;
    sizeToFit(): void;
    sendActionOn$(mask: NobjcObject): number;
    sendAction$to$(action: string | null, target: NobjcObject | null): boolean;
    takeIntValueFrom$(sender: NobjcObject | null): void;
    takeFloatValueFrom$(sender: NobjcObject | null): void;
    takeDoubleValueFrom$(sender: NobjcObject | null): void;
    takeStringValueFrom$(sender: NobjcObject | null): void;
    takeObjectValueFrom$(sender: NobjcObject | null): void;
    takeIntegerValueFrom$(sender: NobjcObject | null): void;
    performClick$(sender: NobjcObject | null): void;
    /**
     * Allows the control to return an expansion tool tip frame if contentFrame is too small for the entire contents in the view. When the mouse is hovered over the text in certain controls, the full contents will be shown in a special floating tool tip view. If the frame is not too small, return an empty rect, and no expansion tool tip view will be shown. By default, NSControl returns NSZeroRect, while some subclasses (such as NSTextField) will return the proper frame when required.
     */
    expansionFrameWithFrame$(contentFrame: CGRect): CGRect;
    /**
     * Allows the control to perform custom expansion tool tip drawing. Note that the view may be different from the original view that the text appeared in.
     */
    drawWithExpansionFrame$inView$(contentFrame: CGRect, view: _NSView): void;
    currentEditor(): _NSText | null;
    abortEditing(): boolean;
    validateEditing(): void;
    editWithFrame$editor$delegate$event$(rect: CGRect, textObj: _NSText, delegate: NobjcObject | null, event: _NSEvent): void;
    selectWithFrame$editor$delegate$start$length$(rect: CGRect, textObj: _NSText, delegate: NobjcObject | null, selStart: number, selLength: number): void;
    endEditing$(textObj: _NSText): void;
    /**
     * Use formatters instead. See -[NSControl formatter] and -[NSControl setFormatter:].
     * @deprecated
     */
    setFloatingPointFormat$left$right$(autoRange: boolean, leftDigits: number, rightDigits: number): void;
    /** @deprecated Set the needsDisplay property to YES instead */
    selectedCell(): _NSCell | null;
    /** @deprecated Set the needsDisplay property to YES instead */
    selectedTag(): number;
    /** @deprecated Set the needsDisplay property to YES instead */
    setNeedsDisplay(): void;
    /** @deprecated Override -layout instead. This method should never be called */
    calcSize(): void;
    updateCell$(cell: _NSCell): void;
    updateCellInside$(cell: _NSCell): void;
    drawCellInside$(cell: _NSCell): void;
    drawCell$(cell: _NSCell): void;
    selectCell$(cell: _NSCell): void;
    /** should be called by a cell on its -controlView */
    invalidateIntrinsicContentSizeForCell$(cell: _NSCell): void;
    /**
     * Target is weak for zeroing-weak compatible objects in apps linked on 10.10 or later. Otherwise the behavior of this property is 'assign’.
     */
    target(): NobjcObject | null;
    setTarget$(value: NobjcObject | null): void;
    action(): string | null;
    setAction$(value: string | null): void;
    tag(): number;
    setTag$(value: number): void;
    ignoresMultiClick(): boolean;
    setIgnoresMultiClick$(value: boolean): void;
    continuous(): boolean;
    setContinuous$(value: boolean): void;
    enabled(): boolean;
    setEnabled$(value: boolean): void;
    refusesFirstResponder(): boolean;
    setRefusesFirstResponder$(value: boolean): void;
    highlighted(): boolean;
    setHighlighted$(value: boolean): void;
    controlSize(): NSControlSize;
    setControlSize$(value: NSControlSize): void;
    formatter(): _NSFormatter | null;
    setFormatter$(value: _NSFormatter | null): void;
    objectValue(): NobjcObject | null;
    setObjectValue$(value: NobjcObject | null): void;
    stringValue(): _NSString;
    setStringValue$(value: _NSString): void;
    attributedStringValue(): _NSAttributedString;
    setAttributedStringValue$(value: _NSAttributedString): void;
    intValue(): number;
    setIntValue$(value: number): void;
    integerValue(): number;
    setIntegerValue$(value: number): void;
    floatValue(): number;
    setFloatValue$(value: number): void;
    doubleValue(): number;
    setDoubleValue$(value: number): void;
    /**
     * The following methods apply only to controls with apparent textual content of some sort (buttons with labels, textfields, etc.).
     */
    font(): _NSFont | null;
    setFont$(value: _NSFont | null): void;
    usesSingleLineMode(): boolean;
    setUsesSingleLineMode$(value: boolean): void;
    lineBreakMode(): NSLineBreakMode;
    setLineBreakMode$(value: NSLineBreakMode): void;
    alignment(): NSTextAlignment;
    setAlignment$(value: NSTextAlignment): void;
    baseWritingDirection(): NSWritingDirection;
    setBaseWritingDirection$(value: NSWritingDirection): void;
    /**
     * Gets and sets the ability for expansion tool tips to be shown or not. Expansion tooltips are automatically shown when the cell can not show the full content. This is controlled by the NSCell API expansionFrameWithFrame:inView: and is drawn by drawWithExpansionFrame:inView:. The default value is NO. This value is encoded along with the control. In general, it is recommended to turn this on for NSTextFields in a View Based NSTableView.
     */
    allowsExpansionToolTips(): boolean;
    setAllowsExpansionToolTips$(value: boolean): void;
    /** @deprecated Set the needsDisplay property to YES instead */
    cell(): _NSCell | null;
    setCell$(value: _NSCell | null): void;
}
