import type { _NSArray } from "./NSArray.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSString } from "./NSString.js";
import type { NSOperatingSystemVersion } from "../structs/NSOperatingSystemVersion.js";
import type { NSActivityOptions } from "./NSActivityOptions.js";
import type { NSProcessInfoThermalState } from "./NSProcessInfoThermalState.js";
export declare class _NSProcessInfo extends _NSObject {
    static alloc(): _NSProcessInfo;
    static new(): _NSProcessInfo;
    init(): _NSProcessInfo;
    static processInfo(): _NSProcessInfo;
    /**
     * @deprecated -operatingSystem always returns NSMACHOperatingSystem, use -operatingSystemVersion or -isOperatingSystemAtLeastVersion: instead
     */
    operatingSystem(): number;
    /**
     * @deprecated -operatingSystemName always returns NSMACHOperatingSystem, use -operatingSystemVersionString instead
     */
    operatingSystemName(): _NSString;
    isOperatingSystemAtLeastVersion$(version: NSOperatingSystemVersion): boolean;
    /**
     * Disable or reenable the ability to be quickly killed. The default implementations of these methods increment or decrement, respectively, a counter whose value is 1 when the process is first created. When the counter's value is 0 the application is considered to be safely killable and may be killed by the operating system without any notification or event being sent to the process first. If an application's Info.plist has an NSSupportsSuddenTermination entry whose value is true then NSApplication invokes -enableSuddenTermination automatically during application launch, which typically renders the process killable right away. You can also manually invoke -enableSuddenTermination right away in, for example, agents or daemons that don't depend on AppKit. After that, you can invoke these methods whenever the process has work it must do before it terminates. For example: - NSUserDefaults uses these to prevent process killing between the time at which a default has been set and the time at which the preferences file including that default has been written to disk. - NSDocument uses these to prevent process killing between the time at which the user has made a change to a document and the time at which the user's change has been written to disk. - You can use these whenever your application defers work that must be done before the application terminates. If for example your application ever defers writing something to disk, and it has an NSSupportsSuddenTermination entry in its Info.plist so as not to contribute to user-visible delays at logout or shutdown time, it must invoke -disableSuddenTermination when the writing is first deferred and -enableSuddenTermination after the writing is actually done.
     */
    disableSuddenTermination(): void;
    enableSuddenTermination(): void;
    /**
     * Increment or decrement the counter tracking the number of automatic quit opt-out requests. When this counter is greater than zero, the app will be considered 'active' and ineligible for automatic termination. An example of using this would be disabling autoquitting when the user of an instant messaging application signs on, due to it requiring a background connection to be maintained even if the app is otherwise inactive. Each pair of calls should have a matching "reason" argument, which can be used to easily track why an application is or is not automatically terminable. A given reason can be used more than once at the same time (for example: two files are transferring over the network, each one disables automatic termination with the reason @"file transfer in progress")
     */
    disableAutomaticTermination$(reason: _NSString): void;
    enableAutomaticTermination$(reason: _NSString): void;
    /**
     * Pass in an activity to this API, and a non-NULL, non-empty reason string. Indicate completion of the activity by calling the corresponding endActivity: method with the result of the beginActivityWithOptions:reason: method. The reason string is used for debugging.
     */
    beginActivityWithOptions$reason$(options: NSActivityOptions, reason: _NSString): _NSObject;
    /** The argument to this method is the result of beginActivityWithOptions:reason:. */
    endActivity$(activity: _NSObject): void;
    /**
     * Synchronously perform an activity. The activity will be automatically ended after your block argument returns. The reason string is used for debugging.
     */
    performActivityWithOptions$reason$usingBlock$(options: NSActivityOptions, reason: _NSString, block: () => void): void;
    /**
     * Perform an expiring background task, which obtains an expiring task assertion on iOS. The block contains any work which needs to be completed as a background-priority task. The block will be scheduled on a system-provided concurrent queue. After a system-specified time, the block will be called with the `expired` parameter set to YES. The `expired` parameter will also be YES if the system decides to prematurely terminate a previous non-expiration invocation of the block.
     */
    performExpiringActivityWithReason$usingBlock$(reason: _NSString, block: (expired: boolean) => void): void;
    environment(): _NSDictionary;
    arguments(): _NSArray;
    hostName(): _NSString;
    /**
     * @deprecated -operatingSystem always returns NSMACHOperatingSystem, use -operatingSystemVersion or -isOperatingSystemAtLeastVersion: instead
     */
    processName(): _NSString;
    setProcessName$(value: _NSString): void;
    /**
     * @deprecated -operatingSystem always returns NSMACHOperatingSystem, use -operatingSystemVersion or -isOperatingSystemAtLeastVersion: instead
     */
    processIdentifier(): number;
    /**
     * @deprecated -operatingSystem always returns NSMACHOperatingSystem, use -operatingSystemVersion or -isOperatingSystemAtLeastVersion: instead
     */
    globallyUniqueString(): _NSString;
    /**
     * Human readable, localized; appropriate for displaying to user or using in bug emails and such; NOT appropriate for parsing
     */
    operatingSystemVersionString(): _NSString;
    operatingSystemVersion(): NSOperatingSystemVersion;
    processorCount(): number;
    activeProcessorCount(): number;
    physicalMemory(): number;
    systemUptime(): number;
    /**
     * Marks the calling app as supporting automatic termination. Without calling this or setting the equivalent Info.plist key (NSSupportsAutomaticTermination), the above methods (disableAutomaticTermination:/enableAutomaticTermination:) have no effect, although the counter tracking automatic termination opt-outs is still kept up to date to ensure correctness if this is called later. Currently, passing NO has no effect. This should be called during -applicationDidFinishLaunching or earlier.
     */
    automaticTerminationSupportEnabled(): boolean;
    setAutomaticTerminationSupportEnabled$(value: boolean): void;
    userName(): _NSString;
    fullUserName(): _NSString;
    /**
     * Retrieve the current thermal state of the system. On systems where thermal state is unknown or unsupported, the value returned from the thermalState property is always NSProcessInfoThermalStateNominal.
     */
    thermalState(): NSProcessInfoThermalState;
    /**
     * Retrieve the current setting of the system for the low power mode setting. On systems where the low power mode is unknown or unsupported, the value returned from the lowPowerModeEnabled property is always NO
     */
    lowPowerModeEnabled(): boolean;
    macCatalystApp(): boolean;
    iOSAppOnMac(): boolean;
    iOSAppOnVision(): boolean;
}
