airsonic-refix/src/global.d.ts
Thomas Amland 8e0cc715ab add eslint
2020-08-11 18:32:51 +02:00

67 lines
1.2 KiB
TypeScript

declare module '*.vue' {
import Vue from 'vue'
export default Vue
}
declare module 'md5-es';
interface Navigator {
readonly mediaSession?: MediaSession;
}
interface Window {
MediaSession?: MediaSession;
}
type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';
type MediaSessionAction =
'play' |
'pause' |
'seekbackward' |
'seekforward' |
'seekto' |
'previoustrack' |
'nexttrack' |
'skipad' |
'stop';
interface MediaSessionActionDetails {
action: MediaSessionAction;
fastSeek?: boolean;
seekOffset?: number;
seekTime?: number;
}
interface MediaPositionState {
duration?: number;
playbackRate?: number;
position?: number;
}
interface MediaSession {
playbackState: MediaSessionPlaybackState;
metadata: MediaMetadata | null;
setActionHandler(
action: MediaSessionAction,
listener: ((details: MediaSessionActionDetails) => void)): void;
setPositionState?(arg: MediaPositionState): void;
}
interface MediaImage {
src: string;
sizes?: string;
type?: string;
}
interface MediaMetadataInit {
title?: string;
artist?: string;
album?: string;
artwork?: MediaImage[];
}
declare class MediaMetadata {
constructor(init?: MediaMetadataInit);
}