/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Interactable, InteractionSession } from "#action/Interactable.js";
import { NodeProtocol } from "#action/protocols.js";
import { Invoke } from "#action/request/Invoke.js";
import { Read } from "#action/request/Read.js";
import { Subscribe } from "#action/request/Subscribe.js";
import { Write } from "#action/request/Write.js";
import { InvokeResult } from "#action/response/InvokeResult.js";
import { ReadResult } from "#action/response/ReadResult.js";
import { SubscribeResult } from "#action/response/SubscribeResult.js";
import { WriteResult } from "#action/response/WriteResult.js";
/**
 * Implementation of server interaction.
 *
 * This implementation currently focuses on read of attribute data with other actions to be implemented later.  Until
 * completion there will be redundancy with other components including:
 *
 * - InteractionServer (significant overlap with this class)
 */
export declare class ServerInteraction<SessionT extends InteractionSession = InteractionSession> implements Interactable<SessionT> {
    #private;
    constructor(node: NodeProtocol);
    read(request: Read, session: SessionT): ReadResult;
    subscribe(_request: Subscribe, _session?: SessionT): SubscribeResult;
    write<T extends Write>(request: T, session: SessionT): WriteResult<T>;
    invoke(request: Invoke, session: SessionT): InvokeResult;
}
//# sourceMappingURL=ServerInteraction.d.ts.map