import type { NobjcObject } from "objc-js";
import type { _NSCell } from "./NSCell.js";
import type { _NSColor } from "./NSColor.js";
import type { _NSControl } from "./NSControl.js";
import type { _NSEvent } from "./NSEvent.js";
import type { _NSMatrixDelegate } from "./NSMatrixDelegate.js";
import type { _NSText } from "./NSText.js";
import type { _NSUserInterfaceValidations } from "./NSUserInterfaceValidations.js";
import type { _NSViewToolTipOwner } from "./NSViewToolTipOwner.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSNotification } from "../Foundation/NSNotification.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { CGRect } from "../structs/CGRect.js";
import type { CGSize } from "../structs/CGSize.js";
import type { NSMatrixMode } from "./NSMatrixMode.js";
export declare class _NSMatrix extends _NSControl {
    static alloc(): _NSMatrix;
    static new(): _NSMatrix;
    init(): _NSMatrix;
    initWithFrame$(frameRect: CGRect): _NSMatrix;
    initWithFrame$mode$prototype$numberOfRows$numberOfColumns$(frameRect: CGRect, mode: NSMatrixMode, cell: _NSCell, rowsHigh: number, colsWide: number): _NSMatrix;
    initWithFrame$mode$cellClass$numberOfRows$numberOfColumns$(frameRect: CGRect, mode: NSMatrixMode, factoryId: NobjcObject | null, rowsHigh: number, colsWide: number): _NSMatrix;
    makeCellAtRow$column$(row: number, col: number): _NSCell;
    sendAction$to$forAllCells$(selector: string, object_: NobjcObject, flag: boolean): void;
    sortUsingSelector$(comparator: string): void;
    sortUsingFunction$context$(compare: NobjcObject | null, context: Uint8Array | null): void;
    setSelectionFrom$to$anchor$highlight$(startPos: number, endPos: number, anchorPos: number, lit: boolean): void;
    deselectSelectedCell(): void;
    deselectAllCells(): void;
    selectCellAtRow$column$(row: number, col: number): void;
    selectAll$(sender: NobjcObject | null): void;
    selectCellWithTag$(tag: number): boolean;
    setScrollable$(flag: boolean): void;
    setState$atRow$column$(value: number, row: number, col: number): void;
    getNumberOfRows$columns$(rowCount: NobjcObject | null, colCount: NobjcObject | null): void;
    cellAtRow$column$(row: number, col: number): _NSCell | null;
    cellFrameAtRow$column$(row: number, col: number): CGRect;
    getRow$column$ofCell$(row: NobjcObject, col: NobjcObject, cell: _NSCell): boolean;
    getRow$column$forPoint$(row: NobjcObject, col: NobjcObject, point: CGPoint): boolean;
    renewRows$columns$(newRows: number, newCols: number): void;
    putCell$atRow$column$(newCell: _NSCell, row: number, col: number): void;
    addRow(): void;
    addRowWithCells$(newCells: _NSArray): void;
    insertRow$(row: number): void;
    insertRow$withCells$(row: number, newCells: _NSArray | null): void;
    removeRow$(row: number): void;
    addColumn(): void;
    addColumnWithCells$(newCells: _NSArray): void;
    insertColumn$(column: number): void;
    insertColumn$withCells$(column: number, newCells: _NSArray | null): void;
    removeColumn$(col: number): void;
    cellWithTag$(tag: number): _NSCell | null;
    sizeToCells(): void;
    setValidateSize$(flag: boolean): void;
    drawCellAtRow$column$(row: number, col: number): void;
    highlightCell$atRow$column$(flag: boolean, row: number, col: number): void;
    scrollCellToVisibleAtRow$column$(row: number, col: number): void;
    mouseDown$(event: _NSEvent): void;
    performKeyEquivalent$(event: _NSEvent): boolean;
    sendAction(): boolean;
    sendDoubleAction(): void;
    textShouldBeginEditing$(textObject: _NSText): boolean;
    textShouldEndEditing$(textObject: _NSText): boolean;
    textDidBeginEditing$(notification: _NSNotification): void;
    textDidEndEditing$(notification: _NSNotification): void;
    textDidChange$(notification: _NSNotification): void;
    selectText$(sender: NobjcObject | null): void;
    selectTextAtRow$column$(row: number, col: number): _NSCell | null;
    acceptsFirstMouse$(event: _NSEvent | null): boolean;
    resetCursorRects(): void;
    setToolTip$forCell$(toolTipString: _NSString | null, cell: _NSCell): void;
    toolTipForCell$(cell: _NSCell): _NSString | null;
    prototype(): _NSCell | null;
    setPrototype$(value: _NSCell | null): void;
    mode(): NSMatrixMode;
    setMode$(value: NSMatrixMode): void;
    allowsEmptySelection(): boolean;
    setAllowsEmptySelection$(value: boolean): void;
    cells(): _NSArray;
    selectedCell(): _NSCell | null;
    selectedCells(): _NSArray;
    selectedRow(): number;
    selectedColumn(): number;
    selectionByRect(): boolean;
    setSelectionByRect$(value: boolean): void;
    cellSize(): CGSize;
    setCellSize$(value: CGSize): void;
    intercellSpacing(): CGSize;
    setIntercellSpacing$(value: CGSize): void;
    backgroundColor(): _NSColor;
    setBackgroundColor$(value: _NSColor): void;
    cellBackgroundColor(): _NSColor | null;
    setCellBackgroundColor$(value: _NSColor | null): void;
    drawsCellBackground(): boolean;
    setDrawsCellBackground$(value: boolean): void;
    drawsBackground(): boolean;
    setDrawsBackground$(value: boolean): void;
    numberOfRows(): number;
    numberOfColumns(): number;
    doubleAction(): string | null;
    setDoubleAction$(value: string | null): void;
    autosizesCells(): boolean;
    setAutosizesCells$(value: boolean): void;
    autoscroll(): boolean;
    setAutoscroll$(value: boolean): void;
    mouseDownFlags(): number;
    delegate(): _NSMatrixDelegate | null;
    setDelegate$(value: _NSMatrixDelegate | null): void;
    /**
     * Determine whether the receiver autorecalculates its cellSize. The default is NO. If set to YES, then the receiver will adjust its cellSize to accommodate its largest cell. Changing the cellSize does not directly affect the frame of the receiver; however it does affect the intrinsic content size, which may cause the receiver to resize under autolayout. The default is NO. When using autolayout, you typically want this to be set to YES.
     */
    autorecalculatesCellSize(): boolean;
    setAutorecalculatesCellSize$(value: boolean): void;
    tabKeyTraversesCells(): boolean;
    setTabKeyTraversesCells$(value: boolean): void;
    keyCell(): _NSCell | null;
    setKeyCell$(value: _NSCell | null): void;
}
export interface _NSMatrix extends _NSUserInterfaceValidations, _NSViewToolTipOwner {
}
