import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSConnectionDelegate } from "./NSConnectionDelegate.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSDistantObject } from "./NSDistantObject.js";
import type { _NSObject } from "./NSObject.js";
import type { _NSPort } from "./NSPort.js";
import type { _NSPortNameServer } from "./NSPortNameServer.js";
import type { _NSRunLoop } from "./NSRunLoop.js";
import type { _NSString } from "./NSString.js";
export declare class _NSConnection extends _NSObject {
    static alloc(): _NSConnection;
    static new(): _NSConnection;
    init(): _NSConnection;
    /** @deprecated */
    static allConnections(): _NSArray;
    /** @deprecated */
    static defaultConnection(): _NSConnection;
    static connectionWithRegisteredName$host$(name: _NSString, hostName: _NSString | null): _NSConnection | null;
    static connectionWithRegisteredName$host$usingNameServer$(name: _NSString, hostName: _NSString | null, server: _NSPortNameServer): _NSConnection | null;
    static rootProxyForConnectionWithRegisteredName$host$(name: _NSString, hostName: _NSString | null): _NSDistantObject | null;
    static rootProxyForConnectionWithRegisteredName$host$usingNameServer$(name: _NSString, hostName: _NSString | null, server: _NSPortNameServer): _NSDistantObject | null;
    static serviceConnectionWithName$rootObject$usingNameServer$(name: _NSString, root: NobjcObject, server: _NSPortNameServer): _NSConnection | null;
    static serviceConnectionWithName$rootObject$(name: _NSString, root: NobjcObject): _NSConnection | null;
    static connectionWithReceivePort$sendPort$(receivePort: _NSPort | null, sendPort: _NSPort | null): _NSConnection | null;
    static currentConversation(): NobjcObject | null;
    invalidate(): void;
    addRequestMode$(rmode: _NSString): void;
    removeRequestMode$(rmode: _NSString): void;
    registerName$(name: _NSString | null): boolean;
    registerName$withNameServer$(name: _NSString | null, server: _NSPortNameServer): boolean;
    initWithReceivePort$sendPort$(receivePort: _NSPort | null, sendPort: _NSPort | null): _NSConnection | null;
    enableMultipleThreads(): void;
    addRunLoop$(runloop: _NSRunLoop): void;
    removeRunLoop$(runloop: _NSRunLoop): void;
    runInNewThread(): void;
    /**
     * NSPort subclasses should use this method to ask a connection object to dispatch Distributed Objects component data received over the wire. This will decode the data, authenticate, and send the message.
     * @deprecated Use NSXPCConnection instead
     */
    dispatchWithComponents$(components: _NSArray): void;
    /** @deprecated */
    statistics(): _NSDictionary;
    requestTimeout(): number;
    setRequestTimeout$(value: number): void;
    replyTimeout(): number;
    setReplyTimeout$(value: number): void;
    rootObject(): NobjcObject | null;
    setRootObject$(value: NobjcObject | null): void;
    delegate(): _NSConnectionDelegate | null;
    setDelegate$(value: _NSConnectionDelegate | null): void;
    independentConversationQueueing(): boolean;
    setIndependentConversationQueueing$(value: boolean): void;
    valid(): boolean;
    rootProxy(): _NSDistantObject;
    requestModes(): _NSArray;
    sendPort(): _NSPort;
    receivePort(): _NSPort;
    multipleThreadsEnabled(): boolean;
    remoteObjects(): _NSArray;
    localObjects(): _NSArray;
}
