import type { NobjcObject } from "objc-js";
import type { _NSButton } from "./NSButton.js";
import type { _NSImage } from "./NSImage.js";
import type { _NSMenu } from "./NSMenu.js";
import type { _NSMenuItem } from "./NSMenuItem.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGRect } from "../structs/CGRect.js";
import type { NSRectEdge } from "../Foundation/NSRectEdge.js";
export declare class _NSPopUpButton extends _NSButton {
    static alloc(): _NSPopUpButton;
    static new(): _NSPopUpButton;
    init(): _NSPopUpButton;
    /**
     * Creates a standard pop-up button with a menu, target, and action. A menu presented by the pop-up button, containing items that the user can choose between. The target object that receives action messages from the control. The action message sent by the control. If `menu` is non-empty, the pop-up button uses the first item for its initial selection. An initialized pop-up button object.
     */
    static popUpButtonWithMenu$target$action$(menu: _NSMenu, target: NobjcObject | null, action: string | null): _NSPopUpButton;
    /**
     * Creates a standard pull-down button with a title and menu. The localized title string that is displayed on the button. The pull-down menu to present when interacting with the button. Pull-down buttons created using this method have the `usesItemFromMenu` property set to `NO`. An initialized pull-down button object.
     */
    static pullDownButtonWithTitle$menu$(title: _NSString, menu: _NSMenu): _NSPopUpButton;
    /**
     * Creates a standard pull-down button with an image and menu. The icon that is displayed on the button. The pull-down menu to present when interacting with the button. Pull-down buttons created using this method have the `usesItemFromMenu` property set to `NO`. An initialized pull-down button object.
     */
    static pullDownButtonWithImage$menu$(image: _NSImage, menu: _NSMenu): _NSPopUpButton;
    /**
     * Creates a standard pull-down button with a title, image, and menu. The localized title string that is displayed on the button. The icon that is displayed on the button. The pull-down menu to present when interacting with the button. Pull-down buttons created using this method have the `usesItemFromMenu` property set to `NO`. An initialized pull-down button object.
     */
    static pullDownButtonWithTitle$image$menu$(title: _NSString, image: _NSImage, menu: _NSMenu): _NSPopUpButton;
    initWithFrame$pullsDown$(buttonFrame: CGRect, flag: boolean): _NSPopUpButton;
    addItemWithTitle$(title: _NSString): void;
    addItemsWithTitles$(itemTitles: _NSArray): void;
    insertItemWithTitle$atIndex$(title: _NSString, index: number): void;
    removeItemWithTitle$(title: _NSString): void;
    removeItemAtIndex$(index: number): void;
    removeAllItems(): void;
    indexOfItem$(item: _NSMenuItem): number;
    indexOfItemWithTitle$(title: _NSString): number;
    indexOfItemWithTag$(tag: number): number;
    indexOfItemWithRepresentedObject$(obj: NobjcObject | null): number;
    indexOfItemWithTarget$andAction$(target: NobjcObject | null, actionSelector: string | null): number;
    itemAtIndex$(index: number): _NSMenuItem | null;
    itemWithTitle$(title: _NSString): _NSMenuItem | null;
    selectItem$(item: _NSMenuItem | null): void;
    selectItemAtIndex$(index: number): void;
    selectItemWithTitle$(title: _NSString): void;
    selectItemWithTag$(tag: number): boolean;
    setTitle$(string_: _NSString): void;
    synchronizeTitleAndSelectedItem(): void;
    itemTitleAtIndex$(index: number): _NSString;
    /**
     * The menu that is presented by the popup button. This overrides the inherited NSView property and replaces NSView's standard context menu behavior.
     */
    menu(): _NSMenu | null;
    setMenu$(value: _NSMenu | null): void;
    /**
     * When the value of this property is `YES` the button adopts 'pull-down' behavior, displaying static button contents and presenting its menu at the edge of the button. When the value of this property is `NO` the button behaves as a popup, displaying the currently-selected menu item and presenting its menu above the button, positioning the selected menu item to match the button's contents.
     */
    pullsDown(): boolean;
    setPullsDown$(value: boolean): void;
    /**
     * When the value of this property is `YES`, the popup button automatically enables and disables its menu items according to the `NSMenuValidation` protocol prior to user interaction.
     */
    autoenablesItems(): boolean;
    setAutoenablesItems$(value: boolean): void;
    /**
     * For pull-down buttons and for popups under severe screen position restrictions, this property specifies the edge of the control that the menu should present from.
     */
    preferredEdge(): NSRectEdge;
    setPreferredEdge$(value: NSRectEdge): void;
    /**
     * When `usesItemFromMenu` is `YES`, a pull-down button uses the title of the first menu item and hides the first menu item. A pop-up button uses the title of the currently selected menu. The default value is `YES`.
     */
    usesItemFromMenu(): boolean;
    setUsesItemFromMenu$(value: boolean): void;
    /**
     * When the value of this property is `YES`, the selected menu item's `state` is set to `NSControlStateValueOn`. When the value of this property is `NO`, the menu item's `state` is not changed. When this property changes, the `state` of the currently selected item is updated appropriately. This property is ignored for pull-down buttons.
     */
    altersStateOfSelectedItem(): boolean;
    setAltersStateOfSelectedItem$(value: boolean): void;
    itemArray(): _NSArray;
    numberOfItems(): number;
    lastItem(): _NSMenuItem | null;
    selectedItem(): _NSMenuItem | null;
    indexOfSelectedItem(): number;
    selectedTag(): number;
    itemTitles(): _NSArray;
    titleOfSelectedItem(): _NSString | null;
}
