/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import type { ServerNode } from "#node/ServerNode.js"; import { AppAddress, Lifetime } from "@matter/general"; import { ApiPath } from "./api/ApiPath.js"; /** * An implementation of a non-Matter network protocol for accessing a {@link ServerNode}. */ export declare abstract class RemoteInterface { #private; constructor({ node, address, certificate, key }: RemoteInterface.Configuration); join(...name: unknown[]): Lifetime; get root(): ApiPath; get env(): import("@matter/general").Environment; get node(): ServerNode; get address(): AppAddress; get certificate(): string | undefined; get key(): string | undefined; get isAborted(): boolean; get abort(): AbortSignal; static create RemoteInterface>(this: This, config: RemoteInterface.Configuration): Promise; close(): Promise; protected assertProtocol(appProtocol: string): void; protected addWorker(worker: Promise): void; static protocol: string; /** * Initialize and begin handling requests to the interface. */ protected abstract start(): Promise; /** * Stop servicing requests. Called on close. The default implementation just waits for any workers to complete. */ protected stop(): Promise; } export declare namespace RemoteInterface { interface Type { protocol: string; create(config: Configuration): Promise; } interface Configuration { node: ServerNode; address: AppAddress; certificate?: string; key?: string; } } //# sourceMappingURL=RemoteInterface.d.ts.map