/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ElementTag } from "../common/index.js";
import { Mei } from "../common/Mei.js";
import { BaseElement } from "./BaseElement.js";
import { ValueElement } from "./ValueElement.js";
/**
 * A command describes a remote procedure call.
 */
export interface CommandElement extends ValueElement {
    id: Mei;
    tag: `${CommandElement.Tag}`;
    direction?: `${CommandElement.Direction}`;
    response?: string;
}
export declare function CommandElement(definition: CommandElement.Properties, ...children: ValueElement[]): CommandElement;
export declare namespace CommandElement {
    type Tag = ElementTag.Command;
    const Tag = ElementTag.Command;
    type Properties = BaseElement.Properties<CommandElement>;
    /**
     * Sentinel ID for non-Matter commands that should be invisible to the Matter protocol layer.
     */
    const NO_ID = -1;
    /**
     * Indicates request vs response command.
     */
    enum Direction {
        Request = "request",
        Response = "response"
    }
}
//# sourceMappingURL=CommandElement.d.ts.map