import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSDate } from "../Foundation/NSDate.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { _NSImage } from "./NSImage.js";
import type { NSApplicationActivationOptions } from "./NSApplicationActivationOptions.js";
import type { NSApplicationActivationPolicy } from "./NSApplicationActivationPolicy.js";
export declare class _NSRunningApplication extends _NSObject {
    static alloc(): _NSRunningApplication;
    static new(): _NSRunningApplication;
    init(): _NSRunningApplication;
    /**
     * @return An array of currently running applications with the given bundle identifier, or an empty array if no apps match.
     */
    static runningApplicationsWithBundleIdentifier$(bundleIdentifier: _NSString): _NSArray;
    /**
     * @return The running application with the given process identifier, or nil if no application has that pid. Applications that do not have PIDs cannot be returned from this method.
     */
    static runningApplicationWithProcessIdentifier$(pid: NobjcObject): _NSRunningApplication | null;
    /**
     * Cause any applications that are invisibly still running (see `NSProcessInfo.h` automatic termination methods and docs) to terminate as if triggered by system memory pressure. This is intended for installer apps and the like to make sure that nothing is unexpectedly relying on the files they're replacing.
     */
    static terminateAutomaticallyTerminableApplications(): void;
    /** @return An @c NSRunningApplication representing this application. */
    static currentApplication(): _NSRunningApplication;
    /**
     * Attempts to hide the receiver. @return `YES` if the request to hide or unhide was successfully sent, `NO` if not (for example, if the application has quit, or is of a type that cannot be unhidden).
     */
    hide(): boolean;
    /**
     * Attempts to unhide the receiver. @return `YES` if the request to hide or unhide was successfully sent, `NO` if not (for example, if the application has quit, or is of a type that cannot be unhidden).
     */
    unhide(): boolean;
    /**
     * Attempts to activate the application using the specified options. You shouldn’t assume the app will be active immediately after sending this message. The framework also does not guarantee that the app will be activated at all. Additionally allows specifying another application to take the active status from, which can be used for coordinated or cooperative activation. The other application should call `-yieldActivationToApplication:` or equivalent prior to this request being sent. @return `YES` if the request has been allowed by the system, otherwise `NO`.
     */
    activateFromApplication$options$(application: _NSRunningApplication, options: NSApplicationActivationOptions): boolean;
    /**
     * Attempts to activate the receiver. @return `YES` if the request to activate was successfully sent, `NO` if not (for example, if the application has quit, or is of a type that cannot be activated).
     */
    activateWithOptions$(options: NSApplicationActivationOptions): boolean;
    /**
     * Attempts to quit the receiver normally. @return `YES` if the request was successfully sent, `NO` if not (for example, if the application is no longer running). This method may return before the receiver exits; you should observe the terminated property or listen for the notification to detect when the app has exited.
     */
    terminate(): boolean;
    /**
     * Attempts to force the receiver to quit. @return `YES` if the request was successfully sent, `NO` if not (for example, if the application is no longer running). This method may return before the receiver exits; you should observe the terminated property or listen for the notification to detect when the app has exited.
     */
    forceTerminate(): boolean;
    /**
     * Indicates that the process is an exited application. This is observable through KVO.
     */
    terminated(): boolean;
    /**
     * Indicates that the process is finished launching, which corresponds to the @c NSApplicationDidFinishLaunching internal notification. This is observable through KVO. Some applications do not post this notification and so are never reported as finished launching.
     */
    finishedLaunching(): boolean;
    /**
     * Indicates whether the application is currently hidden. This is observable through KVO.
     */
    hidden(): boolean;
    /**
     * Indicates whether the application is currently frontmost. This is observable through KVO.
     */
    active(): boolean;
    /**
     * Indicates whether the application currently owns the menu bar. This is observable through KVO.
     */
    ownsMenuBar(): boolean;
    /**
     * Indicates the activation policy of the application. This is observable through KVO (the type is usually fixed, but may be changed through a call to `-[NSApplication setActivationPolicy:]`).
     */
    activationPolicy(): NSApplicationActivationPolicy;
    /**
     * Indicates the name of the application. This is dependent on the current localization of the referenced app, and is suitable for presentation to the user.
     */
    localizedName(): _NSString | null;
    /**
     * Indicates the `CFBundleIdentifier` of the application, or nil if the application does not have an `Info.plist`.
     */
    bundleIdentifier(): _NSString | null;
    /**
     * Indicates the URL to the application's bundle, or nil if the application does not have a bundle.
     */
    bundleURL(): _NSURL | null;
    /** Indicates the URL to the application's executable. */
    executableURL(): _NSURL | null;
    /**
     * Indicates the process identifier (pid) of the application. Do not rely on this for comparing processes. Use `-isEqual:` instead. @note Not all applications have a pid. Applications without a pid return -1 from this method. This is observable through KVO (an application's pid may change if it is automatically terminated).
     */
    processIdentifier(): NobjcObject;
    /**
     * Indicates the date when the application was launched. This property is not available for all applications. Specifically, it is not available for applications that were launched without going through `LaunchServices`.
     */
    launchDate(): _NSDate | null;
    /** @return The icon of the application. */
    icon(): _NSImage | null;
    /**
     * Indicates the executing processor architecture for the application, as an @c NSBundleExecutableArchitecture from `NSBundle.h`.
     */
    executableArchitecture(): number;
}
