import type { NobjcObject } from "objc-js";
import type { _NSObject } from "./NSObject.js";
import type { _NSSet } from "./NSSet.js";
export declare class _NSXPCInterface extends _NSObject {
    static alloc(): _NSXPCInterface;
    static new(): _NSXPCInterface;
    init(): _NSXPCInterface;
    /**
     * Factory method to get an NSXPCInterface instance for a given protocol. Most interfaces do not need any further configuration. Interfaces with collection classes or additional proxy objects should be configured using the methods below.
     */
    static interfaceWithProtocol$(protocol: NobjcObject): _NSXPCInterface;
    /**
     * If an argument to a method in your protocol is a collection class (for example, NSArray or NSDictionary), then the interface must be configured with the set of expected classes contained inside of the collection. The classes argument to this method should be an NSSet containing Class objects, like [MyObject class]. The selector argument specifies which method in the protocol is being configured. The argumentIndex parameter specifies which argument of the method the NSSet applies to. If the NSSet is for an argument of the reply block in the method, pass YES for the ofReply: argument. The first argument is index 0 for both the method and the reply block. If the expected classes are all property list types, calling this method is optional (property list types are automatically allowed for collection objects). You may use this method to further restrict the set of allowed classes.
     */
    setClasses$forSelector$argumentIndex$ofReply$(classes: _NSSet, sel: string, arg: number, ofReply: boolean): void;
    classesForSelector$argumentIndex$ofReply$(sel: string, arg: number, ofReply: boolean): _NSSet;
    /**
     * If an argument to a method in your protocol should be sent as a proxy object instead of by copy, then the interface must be configured with the interface of that new proxy object. If the proxy object is to be an argument of the reply block, pass YES for ofReply. The first argument is index 0 for both the method and the reply block.
     */
    setInterface$forSelector$argumentIndex$ofReply$(ifc: _NSXPCInterface, sel: string, arg: number, ofReply: boolean): void;
    interfaceForSelector$argumentIndex$ofReply$(sel: string, arg: number, ofReply: boolean): _NSXPCInterface | null;
    setXPCType$forSelector$argumentIndex$ofReply$(type: NobjcObject, sel: string, arg: number, ofReply: boolean): void;
    XPCTypeForSelector$argumentIndex$ofReply$(sel: string, arg: number, ofReply: boolean): NobjcObject | null;
    /** The Objective C protocol this NSXPCInterface is based upon. */
    protocol(): NobjcObject;
    setProtocol$(value: NobjcObject): void;
}
