/**
 * @license
 * Copyright 2025-2026 Open Home Foundation
 * SPDX-License-Identifier: Apache-2.0
 */
import { Observable } from "@matter/general";
import { WebRtcTransportRequestorBehavior } from "@matter/node/behaviors/web-rtc-transport-requestor";
import { WebRtcTransportDefinitions } from "@matter/types/clusters/web-rtc-transport-definitions";
import { WebRtcTransportRequestor } from "@matter/types/clusters/web-rtc-transport-requestor";
type WebRtcSession = WebRtcTransportDefinitions.WebRtcSession;
export declare class WebRtcTransportRequestorServer extends WebRtcTransportRequestorBehavior {
    #private;
    state: WebRtcTransportRequestorServer.State;
    events: WebRtcTransportRequestorServer.Events;
    upsertSession(session: WebRtcSession): void;
    removeSession(id: number): void;
    offer(request: WebRtcTransportRequestor.OfferRequest): Promise<void>;
    answer(request: WebRtcTransportRequestor.AnswerRequest): Promise<void>;
    iceCandidates(request: WebRtcTransportRequestor.IceCandidatesRequest): Promise<void>;
    end(request: WebRtcTransportRequestor.EndRequest): Promise<void>;
    initialize(): Promise<void>;
}
export declare namespace WebRtcTransportRequestorServer {
    class State extends WebRtcTransportRequestorBehavior.State {
        currentSessions: WebRtcSession[];
    }
    class Events extends WebRtcTransportRequestorBehavior.Events {
        offer: Observable<[session: WebRtcTransportDefinitions.WebRtcSession, args: WebRtcTransportRequestor.OfferRequest], void>;
        answer: Observable<[session: WebRtcTransportDefinitions.WebRtcSession, sdp: string], void>;
        iceCandidates: Observable<[session: WebRtcTransportDefinitions.WebRtcSession, candidates: WebRtcTransportDefinitions.IceCandidate[]], void>;
        end: Observable<[session: WebRtcTransportDefinitions.WebRtcSession, reason: WebRtcTransportDefinitions.WebRtcEndReason], void>;
    }
}
export {};
//# sourceMappingURL=WebRtcTransportRequestorServer.d.ts.map