/**
 * QoSを表します。
 * @category Enum
 * @enum
 */
export declare const QOS: {
    /** 低信頼。 */
    readonly UNRELIABLE: 1;
    /** 高信頼。 */
    readonly RELIABLE: 2;
    /** 信頼性のあるトランスポートを利用する低信頼。 */
    readonly PARTIAL: 3;
};
/**
 * {@link QOS}の型です。
 * @category Enum
 */
export type QoS = (typeof QOS)[keyof typeof QOS];
/**
 * データポイントを表します。
 *
 * データポイントは、経過時間を付与されたバイナリデータです。 バイナリデータのことをペイロードと呼びます。
 * @category Data ID and Data Point
 */
export declare class DataPoint {
    /** 経過時間（ナノ秒）。 */
    elapsedTime: bigint;
    /** ペイロード。 */
    payload: Uint8Array;
    constructor(init: {
        elapsedTime: DataPoint['elapsedTime'];
        payload: DataPoint['payload'];
    });
}
/**
 * データポイントの、名称とデータ型を表す識別子です。
 *
 * おもに、ブローカーおよびノードでのデータの意味と型の特定、
 * ダウンストリームフィルタにて指定された受信条件に各時系列データポイントが合致するかどうかの判定、などに使用されます。
 *
 * 特殊文字 ``/`` はセパレータです。名称や型の階層構造を表現することができます。
 *
 * @category Data ID and Data Point
 */
export declare class DataId {
    /** 名称。 */
    name: string;
    /** 型。 */
    type: string;
    constructor(init: {
        name: DataId['name'];
        type: DataId['type'];
    });
    /**
     * DataIdの文字列表現から{@link DataId}を生成します。
     */
    static parse(dataId: string): DataId;
    /**
     * DataIdを文字列表現に変換します。
     */
    toString(): string;
    /**
     * DataIdを再帰的に複製します。
     */
    deepCopy(): DataId;
}
export type DataIdOrAlias = DataId | number;
/**
 * ストリームチャンクの中のデータポイントをデータIDごとにまとめた集合です。
 */
export declare class DataPointGroup {
    /** データIDまたはそのエイリアス */
    dataIdOrAlias: DataIdOrAlias;
    /** データポイントのリスト */
    dataPoints: DataPoint[];
    constructor(init: {
        dataIdOrAlias: DataPointGroup['dataIdOrAlias'];
        dataPoints: DataPointGroup['dataPoints'];
    });
}
/**
 * 受信するデータを指定するためのデータフィルタです。
 *
 *    名称や型の指定において階層構造を表現したいときには、特殊文字 ``/`` をセパレータとして使用することができます。
 *
 *    特殊文字 ``#`` はマルチレベルワイルドカードです。
 *
 *    - フィルタが ``#`` のとき、 ``name`` はマッチします。
 *    - フィルタが ``#`` のとき、 ``group/name`` はマッチします。
 *    - フィルタが ``group/#`` のとき、 ``group/name`` はマッチします。
 *    - フィルタが ``group/#`` のとき、 ``group/sub-group/name`` はマッチします。
 *    - フィルタが ``group/#`` のとき、 ``other-group/name`` はマッチしません。
 *
 *    特殊文字 ``+`` は単一レベルワイルドカードです。
 *
 *    - フィルタが ``+`` のとき、 ``name`` はマッチします。
 *    - フィルタが ``group/+`` のとき、 ``group/name`` はマッチします。
 *    - フィルタが ``group/+/name`` のとき、 ``group/sub-group/name`` はマッチします。
 *    - フィルタが ``group/+/name`` のとき、 ``group/other-group/name`` はマッチします。
 *    - フィルタが ``group/+/name`` のとき、 ``group/other-group/some-name`` はマッチしません。
 *
 * @category Downstream
 */
export declare class DataFilter {
    /** 名称 */
    name: string;
    /** 型 */
    type: string;
    constructor(init: {
        name: DataFilter['name'];
        type: DataFilter['type'];
    });
    /**
     * 全データ型、全データ名称を受信対象とするデータフィルタを取得します。
     */
    static fullOpen(): DataFilter;
    /**
     * データフィルタの文字列表現から{@link DataFilter}を生成します。
     */
    static parse(dataId: string): DataFilter;
    /**
     * データフィルタの文字列表現を取得します。
     */
    toString(): string;
}
/**
 * ダウンストリームフィルタを表します。
 * @category Downstream
 */
export declare class DownstreamFilter {
    /** 送信元ノードID。 */
    sourceNodeId: string;
    /** データフィルタのリスト。 */
    dataFilters: DataFilter[];
    constructor(init: {
        sourceNodeId: DownstreamFilter['sourceNodeId'];
        dataFilters: DownstreamFilter['dataFilters'];
    });
    /**
     * 指定したノードが送信するすべてのデータを取得するフィルタです。
     * @param sourceNodeId データ取得対象とする送信元ノード。
     */
    static allFor(sourceNodeId: string): DownstreamFilter;
}
/**
 * ストリームを時間で区切ったデータポイントのまとまりです。
 *
 * iSCPにおけるデータ伝送は、このチャンク単位で行われます。
 */
export declare class StreamChunk {
    /** シーケンス番号 */
    sequenceNumber: number;
    /** データポイントグループのリスト */
    dataPointGroups: DataPointGroup[];
    constructor(init: {
        sequenceNumber: number;
        dataPointGroups: DataPointGroup[];
    });
}
