diff --git a/src/matrixrtc/EncryptionManager.ts b/src/matrixrtc/EncryptionManager.ts index 0ddaf7f874a..9ce02dea2f8 100644 --- a/src/matrixrtc/EncryptionManager.ts +++ b/src/matrixrtc/EncryptionManager.ts @@ -1,10 +1,8 @@ -import { type MatrixClient } from "../client.ts"; import { logger as rootLogger } from "../logger.ts"; import { type MatrixEvent } from "../models/event.ts"; -import { type Room } from "../models/room.ts"; import { type EncryptionConfig } from "./MatrixRTCSession.ts"; import { secureRandomBase64Url } from "../randomstring.ts"; -import { type EncryptionKeysEventContent } from "./types.ts"; +import { type RTCClient, type RTCRoom, type EncryptionKeysEventContent } from "./types.ts"; import { decodeBase64, encodeUnpaddedBase64 } from "../base64.ts"; import { type MatrixError, safeGetRetryAfterMs } from "../http-api/errors.ts"; import { type CallMembership } from "./CallMembership.ts"; @@ -99,8 +97,8 @@ export class EncryptionManager implements IEncryptionManager { private joinConfig: EncryptionConfig | undefined; public constructor( - private client: Pick, - private room: Pick, + private client: RTCClient, + private room: RTCRoom, private getMemberships: () => CallMembership[], private onEncryptionKeysChanged: ( keyBin: Uint8Array, diff --git a/src/matrixrtc/MatrixRTCSession.ts b/src/matrixrtc/MatrixRTCSession.ts index 64672500abb..64d3b343bb4 100644 --- a/src/matrixrtc/MatrixRTCSession.ts +++ b/src/matrixrtc/MatrixRTCSession.ts @@ -18,7 +18,6 @@ import { logger as rootLogger } from "../logger.ts"; import { TypedEventEmitter } from "../models/typed-event-emitter.ts"; import { EventTimeline } from "../models/event-timeline.ts"; import { type Room } from "../models/room.ts"; -import { type MatrixClient } from "../client.ts"; import { EventType } from "../@types/event.ts"; import { CallMembership } from "./CallMembership.ts"; import { RoomStateEvent } from "../models/room-state.ts"; @@ -27,6 +26,7 @@ import { KnownMembership } from "../@types/membership.ts"; import { type MatrixEvent } from "../models/event.ts"; import { LegacyMembershipManager, type IMembershipManager } from "./MembershipManager.ts"; import { EncryptionManager, type IEncryptionManager, type Statistics } from "./EncryptionManager.ts"; +import { type RTCClient, type RTCRoom } from "./types.ts"; const logger = rootLogger.getChild("MatrixRTCSession"); @@ -153,7 +153,7 @@ export class MatrixRTCSession extends TypedEventEmitter, - private client: Pick< - MatrixClient, - | "getUserId" - | "getDeviceId" - | "sendStateEvent" - | "_unstable_sendDelayedEvent" - | "_unstable_sendDelayedStateEvent" - | "_unstable_updateDelayedEvent" - >, + private room: RTCRoom, + private client: RTCClient, private getOldestMembership: () => CallMembership | undefined, ) {} diff --git a/src/matrixrtc/types.ts b/src/matrixrtc/types.ts index 998a4444525..90a6a0f1677 100644 --- a/src/matrixrtc/types.ts +++ b/src/matrixrtc/types.ts @@ -13,7 +13,28 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -import { type IMentions } from "../matrix.ts"; +import { type MatrixClient, type IMentions, type Room } from "../matrix.ts"; + +export type RTCClient = Pick< + MatrixClient, + | "cancelPendingEvent" + | "getUserId" + | "getDeviceId" + | "sendEvent" + | "sendStateEvent" + | "_unstable_sendDelayedEvent" + | "_unstable_sendDelayedStateEvent" + | "_unstable_updateDelayedEvent" +>; + +export type RTCRoom = Pick< + Room, + | "getLiveTimeline" + | "getVersion" + | "hasMembershipState" + | "roomId" +>; + export interface EncryptionKeyEntry { index: number; key: string;