import type { NobjcObject } from "objc-js";
import type { _NSClassDescription } from "./NSClassDescription.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSScriptCommandDescription } from "./NSScriptCommandDescription.js";
import type { _NSString } from "./NSString.js";
export declare class _NSScriptClassDescription extends _NSClassDescription {
    static alloc(): _NSScriptClassDescription;
    static new(): _NSScriptClassDescription;
    init(): _NSScriptClassDescription;
    /**
     * Return the class description for a class or, if it is not scriptable, the first superclass that is.
     */
    static classDescriptionForClass$(aClass: NobjcObject): _NSScriptClassDescription | null;
    /**
     * Initialize, given a scripting suite name, class name, and class declaration dictionary of the sort that is valid in .scriptSuite property list files.
     */
    initWithSuiteName$className$dictionary$(suiteName: _NSString, className: _NSString, classDeclaration: _NSDictionary | null): _NSScriptClassDescription | null;
    /**
     * Return YES if the four character code identifies the described class in Apple events. Return NO otherwise.
     */
    matchesAppleEventCode$(appleEventCode: number): boolean;
    /**
     * Return YES if the described class or one of its superclasses is explicitly declared to support the described command, NO otherwise.
     */
    supportsCommand$(commandDescription: _NSScriptCommandDescription): boolean;
    /**
     * If the described class or one of its superclasses is explicitly declared to support the described command and the declaration includes a method name, return the selector for the class' handler method for the command. Return NULL otherwise.
     */
    selectorForCommand$(commandDescription: _NSScriptCommandDescription): string | null;
    /**
     * Return the name of the declared type of the keyed attribute, to-one relationship, or to-many relationship.
     */
    typeForKey$(key: _NSString): _NSString | null;
    /**
     * Return the class description for the keyed attribute, to-one relationship, or to-many relationship.
     */
    classDescriptionForKey$(key: _NSString): _NSScriptClassDescription | null;
    /**
     * Return the four character code that identifies the keyed attribute, to-one relationship, or to-many relationship in Apple events.
     */
    appleEventCodeForKey$(key: _NSString): number;
    /**
     * Given a four character code used to identify a property or element class in Apple events, return the key identifying the corresponding attribute, to-one relationship or to-many relationship.
     */
    keyWithAppleEventCode$(appleEventCode: number): _NSString | null;
    /**
     * Return YES if creation of objects for the relationship specified by the key, in containers of the class described by the receiver, requires an explicitly specified insertion location. Return NO otherwise. For example, NSCreateCommand uses this method to determine whether or not a specific Make command must have an at parameter.
     */
    isLocationRequiredToCreateForKey$(toManyRelationshipKey: _NSString): boolean;
    /**
     * Return whether the described class has a property identified by the key, whether it's a to-many relationship, whether it's readable, or whether it's writable, respectively.
     */
    hasPropertyForKey$(key: _NSString): boolean;
    hasOrderedToManyRelationshipForKey$(key: _NSString): boolean;
    hasReadablePropertyForKey$(key: _NSString): boolean;
    hasWritablePropertyForKey$(key: _NSString): boolean;
    /**
     * A method that was deprecated in Mac OS 10.5. You should use -hasWritablePropertyForKey: instead.
     * @deprecated -hasWritablePropertyForKey:
     */
    isReadOnlyKey$(key: _NSString): boolean;
    /** Return the suite name or class name provided at initialization time. */
    suiteName(): _NSString | null;
    /**
     * Return the name of the Objective-C that implements the described scriptable class.
     */
    implementationClassName(): _NSString | null;
    /**
     * Return the scripting class description of the superclass of the class described by the receiver.
     */
    superclassDescription(): _NSScriptClassDescription | null;
    /**
     * Return the primary four character code used to identify the described class in Apple events.
     */
    appleEventCode(): number;
    /**
     * Return the value of the DefaultSubcontainerAttribute entry of the class declaration dictionary provided when the receiver was instantiated, or nil if there was no such entry.
     */
    defaultSubcontainerAttributeKey(): _NSString | null;
}
