/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { ClusterId, CommandId, CommandPath, EndpointNumber, StatusCode, TlvStream } from "@matter/types";
export type InvokeResult = AsyncIterable<InvokeResult.Chunk>;
export type DecodedInvokeResult = AsyncIterable<InvokeResult.DecodedChunk>;
export declare namespace InvokeResult {
    type Chunk = Iterable<Data>;
    type DecodedChunk = Iterable<DecodedData>;
    type Data = CommandStatus | CommandResponse;
    type DecodedData = CommandStatus | DecodedCommandResponse;
    interface ConcreteCommandPath extends CommandPath {
        endpointId: EndpointNumber;
        clusterId: ClusterId;
        commandId: CommandId;
    }
    interface CommandStatus {
        kind: "cmd-status";
        path: ConcreteCommandPath;
        commandRef?: number;
        status: StatusCode;
        clusterStatus?: number;
    }
    interface CommandResponse {
        kind: "cmd-response";
        path: ConcreteCommandPath;
        commandRef?: number;
        data: TlvStream;
    }
    interface DecodedCommandResponse extends Omit<CommandResponse, "data"> {
        data: any;
    }
}
//# sourceMappingURL=InvokeResult.d.ts.map