declare module 'm3u8-parser' {
  export const Parser = any

  export interface Manifest {
    allowCache: boolean,
    custom: {},
    dateTimeObject: Date,
    dateTimeString: string,
    discontinuitySequence: number,
    discontinuityStarts: [number],
    endList: boolean,
    mediaGroups: {
      AUDIO: {
        'GROUP-ID': {
          NAME: {
            autoselect: boolean,
            characteristics: string,
            default: boolean,
            forced: boolean,
            instreamId: string,
            language: string,
            uri: string,
          },
        },
      },
      'CLOSED-CAPTIONS': {},
      SUBTITLES: {},
      VIDEO: {},
    },
    mediaSequence: number,
    playlistType: string,
    playlists: [
      {
        Manifest,
        attributes: {},
      }
    ],
    segments: [
      {
        attributes: {},
        byterange: {
          length: number,
          offset: number,
        },
        'cue-in': string,
        'cue-out': string,
        'cue-out-cont': string,
        custom: {},
        discontinuity: number,
        duration: number,
        key: {
          iv: string,
          method: string,
          uri: string,
        },
        map: {
          byterange: {
            length: number,
            offset: number,
          },
          uri: string,
        },
        timeline: number,
        uri: string,
      }
    ],
    targetDuration: number,
    totalDuration: number,
  }
}
