import type { NobjcObject } from "objc-js";
import type { _NSCoding } from "../Foundation/NSCoding.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _SBElementArray } from "./SBElementArray.js";
export declare class _SBObject extends _NSObject {
    static alloc(): _SBObject;
    static new(): _SBObject;
    /**
     * Initializes and returns an instance of an `SBObject` subclass. Scripting Bridge does not actually create an object in the target application until you add the object returned from this method to an element array (``SBElementArray``). - Returns: An `SBObject` object or `nil` if the object could not be initialized.
     */
    init(): _SBObject;
    /**
     * Returns an instance of an `SBObject` subclass initialized with the specified properties. Scripting Bridge does not actually create an object in the target application until you add the object returned from this method to an element array (``SBElementArray``). - Parameters: - properties: A dictionary with keys specifying the names of properties (that is, attributes or to-one relationships) and the values for those properties. - Returns: An `SBObject` object or `nil` if the object could not be initialized.
     */
    initWithProperties$(properties: _NSDictionary): _SBObject;
    /**
     * Returns an instance of an `SBObject` subclass initialized with the given data. Scripting Bridge does not actually create an object in the target application until you add the object returned from this method to an element array (``SBElementArray``). - Parameters: - data: An object containing data for the new `SBObject` object. The data varies according to the type of scripting object to be created. - Returns: An `SBObject` object or `nil` if the object could not be initialized.
     */
    initWithData$(data: NobjcObject): _SBObject;
    /**
     * Forces evaluation of the receiver, causing the real object to be returned immediately. This method forces the current object reference (the receiver) to be evaluated, resulting in the return of the referenced object. By default, Scripting Bridge deals with references to objects until you actually request some concrete data from them or until you call the `get` method. - Returns: For most properties, the result is a Foundation object such as an `NSString`. For properties with no Foundation equivalent, the result is an `NSAppleEventDescriptor` or another ``SBObject`` for most elements.
     */
    get(): NobjcObject | null;
    /** The error from the last event this object sent, or nil if it succeeded. */
    lastError(): _NSError | null;
    /**
     * Returns an instance of an `SBObject` subclass initialized with the specified properties and data and added to the designated element array. Unlike the other initializers of this class, this method not only initializes the `SBObject` object but adds it to a specified element array. This method is the designated initializer. - Parameters: - code: A four-character code used to identify an element in the target application’s scripting interface. See <doc://com.apple.documentation/documentation/applicationservices/apple_event_manager> for details. - properties: A dictionary with <doc://com.apple.documentation/documentation/foundation/nsnumber> keys specifying the four-character codes of properties (that is, attributes or to-one relationships) and the values for those properties. Pass `nil` if you are initializing the object by `data` only. - data: An object containing data for the new `SBObject` object. The data varies according to the type of scripting object to be created. Pass `nil` if you initializing the object by `properties` only. - Returns: An `SBObject` object or `nil` if the object could not be initialized.
     */
    initWithElementCode$properties$data$(code: number, properties: _NSDictionary | null, data: NobjcObject | null): _SBObject;
    /**
     * Returns an object representing the specified property of the receiver. `SBObject` subclasses use this method to implement application-specific property accessor methods. You should not need to call this method directly. - Parameters: - code: A four-character code that uniquely identifies a property of the receiver. - Returns: An object representing the receiver’s property as identified by `code`.
     */
    propertyWithCode$(code: number): _SBObject;
    /**
     * Returns an object of the designated scripting class representing the specified property of the receiver `SBObject` subclasses use this method to implement application-specific property accessor methods. You should not need to call this method directly. > Note: This method doesn't retrieve the value of the property. To get the value, call ``get``. - Parameters: - class: The `SBObject` subclass with which to instantiate the object. - code: A four-character code that uniquely identifies a property of the receiver. - Returns: An instance of the designated `class` that represents the receiver’s property identified by `code`.
     */
    propertyWithClass$code$(cls: NobjcObject, code: number): _SBObject;
    /**
     * Returns an array containing every child of the receiver with the given class-type code. `SBObject` subclasses use this method to implement application-specific property accessor methods. You should not need to call this method directly. > Note: This method doesn't retrieve the value of the property. To get the value, call ``get``. - Parameters: - code: A four-character code that identifies a scripting class. - Returns: An ``SBElementArray`` object containing every child of the receiver whose class matches `code`.
     */
    elementArrayWithCode$(code: number): _SBElementArray;
    /**
     * Sends an Apple event with the given event class, event ID, and format to the target application. Scripting Bridge uses this method to communicate with target applications. If the target application responds to this method by sending an Apple event representing an error, the receiver calls its delegate's ``SBApplicationDelegate/eventDidFail:withError:`` method. If no delegate has been assigned, the receiver raises an exception. You should rarely have to call this method directly. - Parameters: - eventClass: The event class of the Apple event to be sent. - eventID: The event ID of the Apple event to be sent. - firstParamCode,...: A list of four-character parameter codes (<doc://com.apple.documentation/documentation/coreservices/desctype>) and object values (`id`) terminated by a zero. - Returns: The target application's Apple event sent in reply; it is converted to a Cocoa object of an appropriate type.
     */
    sendEvent$id$parameters$(eventClass: number, eventID: number, firstParamCode: number): NobjcObject;
    /**
     * Sets the receiver to a specified value. You should not call this method directly. - Parameters: - value: The data the receiver should be set to. It can be an <doc://com.apple.documentation/documentation/foundation/nsstring>, <doc://com.apple.documentation/documentation/foundation/nsnumber>, <doc://com.apple.documentation/documentation/foundation/nsarray>, `SBObject`, or any other type of object supported by the Scripting Bridge framework.
     */
    setTo$(value: NobjcObject | null): void;
}
export interface _SBObject extends _NSCoding {
}
