/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { SupportedTransportsBitmap } from "#common/SupportedTransportsBitmap.js";
import { SessionIntervals } from "./SessionIntervals.js";
export interface SessionParameters extends SessionIntervals {
    /** Version of Data Model for the Session parameters side where it appears. */
    dataModelRevision: number;
    /** Version of Interaction Model for the Session parameters side where it appears. */
    interactionModelRevision: number;
    /** Version of Specification for the Session parameters side where it appears. */
    specificationVersion: number;
    /** The maximum number of elements in the InvokeRequests list that the Node is able to process. */
    maxPathsPerInvoke: number;
    /** A bitmap of the supported transport protocols in addition to MRP. */
    supportedTransports: SessionParameters.SupportedTransports;
    /**
     * Maximum size of the message carried over TCP, excluding the framing message length field, that the node is
     * capable of receiving from its peer.
     */
    maxTcpMessageSize?: number;
}
export declare function SessionParameters(config?: SessionParameters.Config): SessionParameters;
export declare namespace SessionParameters {
    interface SupportedTransports extends Partial<SupportedTransportsBitmap> {
    }
    interface Config extends Partial<Omit<SessionParameters, "supportedTransports">> {
        supportedTransports?: number | SupportedTransports;
    }
    /**
     * Session parameters we use for peers if not supplied by the peer.
     */
    const fallbacks: {
        /**
         * Fallback value for Data Model Revision when not provided in Session parameters. We use Matter 1.2 as
         * assumption.
         */
        dataModelRevision: number;
        /**
         * Fallback value for Interaction Model Revision when not provided in Session parameters. We use Matter 1.2 as
         * assumption.
         */
        interactionModelRevision: number;
        /**
         * Fallback value for Specification Version when not provided in Session parameters. We use 0 as assumption which is
         * "before 1.3".
         */
        specificationVersion: number;
        /**
         * Fallback value for the maximum number of paths that can be included in a single invoke message when not provided in
         * Session parameters.
         */
        maxPathsPerInvoke: number;
        /**
         * No TCP support by default.
         */
        supportedTransports: {};
        maxTcpMessageSize: number;
        idleInterval: import("@matter/general").Duration;
        activeInterval: import("@matter/general").Duration;
        activeThreshold: import("@matter/general").Duration;
    };
    /**
     * Session parameters we use for ourselves.
     */
    const defaults: {
        dataModelRevision: number;
        interactionModelRevision: number;
        specificationVersion: number;
        /**
         * Fallback value for the maximum number of paths that can be included in a single invoke message when not provided in
         * Session parameters.
         */
        maxPathsPerInvoke: number;
        /**
         * No TCP support by default.
         */
        supportedTransports: {};
        maxTcpMessageSize: number;
        idleInterval: import("@matter/general").Duration;
        activeInterval: import("@matter/general").Duration;
        activeThreshold: import("@matter/general").Duration;
    };
}
//# sourceMappingURL=SessionParameters.d.ts.map