/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { Subscribe } from "#action/request/Subscribe.js";
import type { ActiveSubscription } from "#action/response/SubscribeResult.js";
import type { SubscriptionId } from "#interaction/Subscription.js";
import type { PeerAddress } from "#peer/PeerAddress.js";
import { Abort, Lifetime, Logger } from "@matter/general";
import type { ClientSubscribe } from "./ClientSubscribe.js";
/**
 * The client view of an established Matter subscription.
 */
export declare abstract class ClientSubscription implements ActiveSubscription {
    #private;
    readonly request: Subscribe;
    readonly peer: PeerAddress;
    abstract maxInterval: number;
    abstract interactionModelRevision: number;
    /**
     * If the subscription has an async worker, this is the promise associated with the worker.
     */
    done?: Promise<void>;
    constructor({ request, peer, closed, abort, lifetime }: ClientSubscription.Configuration);
    get kind(): string;
    get subscriptionId(): SubscriptionId;
    set subscriptionId(id: SubscriptionId);
    close(): void;
    protected get abort(): Abort;
    protected get logger(): Logger;
}
export declare namespace ClientSubscription {
    const NO_SUBSCRIPTION = -1;
    interface Configuration {
        request: ClientSubscribe;
        peer: PeerAddress;
        closed: () => void;
        lifetime: Lifetime.Owner;
        abort?: AbortSignal;
    }
}
//# sourceMappingURL=ClientSubscription.d.ts.map