import { Destructible, RMINamespace } from './foundation'; import { RMIMethodMetadata } from './metadata/RMIMethodMetadata'; import { AnyConstructor, AnyFunction, Communicator, Constructor, GetRemoteMethodOptions, PromisifyClass, RemoteClassOptions } from './types'; export interface Remote extends Destructible { __destroy__(): Promise; } export declare class Channel { private globalInstance; private readonly globalNamespace; private readonly adaptor; private readonly namespaces; private _isDestroyed; constructor(id: string, communicator: Communicator); get_class(remoteClassIdOrOptions?: string | RemoteClassOptions, _clazzOrMembers?: Constructor | Array): PromisifyClass; def_class(id: string, clazz: AnyConstructor): any; def_class(clazz: AnyConstructor): any; def_instance(id: string | RMINamespace, instance: Object, methodNames?: string[]): void; get_method(methodNameOrmetadataOrOptions?: string | RMIMethodMetadata | GetRemoteMethodOptions, func?: F): (this: T, ...args: Parameters) => Promise>; private resolveRemoteMethodOptions; def_method(name: string, func: T): any; def_method(func: T): any; destroyThat(remote_instance: T): Promise; get isDestroyed(): boolean; destroy(): Promise; }