blob: 770c7a826812d2359faf721f9c03a237f1516784 [file] [log] [blame]
Charliec2c012f2022-10-05 14:09:28 -04001/*
2 * Copyright (C) 2022 Savoir-faire Linux Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as
6 * published by the Free Software Foundation; either version 3 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Affero General Public License for more details.
13 *
14 * You should have received a copy of the GNU Affero General Public
15 * License along with this program. If not, see
16 * <https://www.gnu.org/licenses/>.
17 */
simon1170c322022-10-31 14:51:31 -040018import { Dispatch, ReactNode, SetStateAction } from 'react';
Charliec2c012f2022-10-05 14:09:28 -040019
20export type WithChildren = {
21 children: ReactNode;
22};
simon1170c322022-10-31 14:51:31 -040023
24export type SetState<T> = Dispatch<SetStateAction<T>>;
simon571240f2022-11-29 23:59:27 -050025
26/**
27 * HTMLVideoElement with the `sinkId` and `setSinkId` optional properties.
28 *
29 * These properties are defined only on supported browsers
30 * https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId#browser_compatibility
31 */
32export interface VideoElementWithSinkId extends HTMLVideoElement {
33 sinkId?: string;
34 setSinkId?: (deviceId: string) => void;
35}