import type { NobjcObject } from "objc-js";
import type { _NSColor } from "./NSColor.js";
import type { _NSControl } from "./NSControl.js";
import type { _NSImage } from "./NSImage.js";
import type { _NSMenu } from "./NSMenu.js";
import type { _NSUserInterfaceCompressionOptions } from "./NSUserInterfaceCompressionOptions.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGSize } from "../structs/CGSize.js";
import type { NSControlBorderShape } from "./NSControlBorderShape.js";
import type { NSImageScaling } from "./NSImageScaling.js";
import type { NSSegmentDistribution } from "./NSSegmentDistribution.js";
import type { NSSegmentStyle } from "./NSSegmentStyle.js";
import type { NSSegmentSwitchTracking } from "./NSSegmentSwitchTracking.js";
import type { NSTextAlignment } from "./NSTextAlignment.js";
export declare class _NSSegmentedControl extends _NSControl {
    static alloc(): _NSSegmentedControl;
    static new(): _NSSegmentedControl;
    init(): _NSSegmentedControl;
    /**
     * Creates a standard segmented control containing one segment for each of the provided labels. An array of localized label strings to use for the control's segments. The selection mode for the control. The NSSegmentSwitchTracking enum describes the possible values and their effects. The target object that receives action messages from the control. The action message sent by the control. An initialized segmented control.
     */
    static segmentedControlWithLabels$trackingMode$target$action$(labels: _NSArray, trackingMode: NSSegmentSwitchTracking, target: NobjcObject | null, action: string | null): _NSSegmentedControl;
    /**
     * Creates a standard segmented control containing one segment for each of the provided images. To ensure accessibility for this control, set the accessibilityDescription property on each of the provided images. An array of image objects to use for the control's segments. The selection mode for the control. The NSSegmentSwitchTracking enum describes the possible values and their effects. The target object that receives action messages from the control. The action message sent by the control. An initialized segmented control.
     */
    static segmentedControlWithImages$trackingMode$target$action$(images: _NSArray, trackingMode: NSSegmentSwitchTracking, target: NobjcObject | null, action: string | null): _NSSegmentedControl;
    selectSegmentWithTag$(tag: number): boolean;
    setWidth$forSegment$(width: number, segment: number): void;
    widthForSegment$(segment: number): number;
    setImage$forSegment$(image: _NSImage | null, segment: number): void;
    imageForSegment$(segment: number): _NSImage | null;
    setImageScaling$forSegment$(scaling: NSImageScaling, segment: number): void;
    imageScalingForSegment$(segment: number): NSImageScaling;
    setLabel$forSegment$(label: _NSString, segment: number): void;
    labelForSegment$(segment: number): _NSString | null;
    setMenu$forSegment$(menu: _NSMenu | null, segment: number): void;
    menuForSegment$(segment: number): _NSMenu | null;
    setSelected$forSegment$(selected: boolean, segment: number): void;
    isSelectedForSegment$(segment: number): boolean;
    setEnabled$forSegment$(enabled: boolean, segment: number): void;
    isEnabledForSegment$(segment: number): boolean;
    setToolTip$forSegment$(toolTip: _NSString | null, segment: number): void;
    toolTipForSegment$(segment: number): _NSString | null;
    setTag$forSegment$(tag: number, segment: number): void;
    tagForSegment$(segment: number): number;
    setShowsMenuIndicator$forSegment$(showsMenuIndicator: boolean, segment: number): void;
    showsMenuIndicatorForSegment$(segment: number): boolean;
    /**
     * Controls the content alignment of the specified segment. Defaults to NSTextAlignmentCenter and results in the standard centered cluster of content
     */
    setAlignment$forSegment$(alignment: NSTextAlignment, segment: number): void;
    alignmentForSegment$(segment: number): NSTextAlignment;
    compressWithPrioritizedCompressionOptions$(prioritizedOptions: _NSArray): void;
    minimumSizeWithPrioritizedCompressionOptions$(prioritizedOptions: _NSArray): CGSize;
    segmentCount(): number;
    setSegmentCount$(value: number): void;
    selectedSegment(): number;
    setSelectedSegment$(value: number): void;
    segmentStyle(): NSSegmentStyle;
    setSegmentStyle$(value: NSSegmentStyle): void;
    /** sends action on deep-press or extended hover while dragging. Defaults to NO. */
    springLoaded(): boolean;
    setSpringLoaded$(value: boolean): void;
    trackingMode(): NSSegmentSwitchTracking;
    setTrackingMode$(value: NSSegmentSwitchTracking): void;
    /**
     * This message is valid only for trackingMode=NSSegmentSwitchTrackingMomentaryAccelerator and provides the double value for the selected segment.
     */
    doubleValueForSelectedSegment(): number;
    /** The color of the selected segment's bevel, in appearances that support it */
    selectedSegmentBezelColor(): _NSColor;
    setSelectedSegmentBezelColor$(value: _NSColor): void;
    /**
     * same as selectedSegment, but useful for connecting a segmented control to -[NSTabView takeSelectedTabViewItemFromSender:]
     */
    indexOfSelectedItem(): number;
    /**
     * Defaults to NSSegmentDistributionFill on 10.13, older systems will continue to behave similarly to NSSegmentDistributionFit
     */
    segmentDistribution(): NSSegmentDistribution;
    setSegmentDistribution$(value: NSSegmentDistribution): void;
    activeCompressionOptions(): _NSUserInterfaceCompressionOptions;
    borderShape(): NSControlBorderShape;
    setBorderShape$(value: NSControlBorderShape): void;
}
