/* auto-generated by NAPI-RS */
/* eslint-disable */
/** 初始化媒体控制服务 */
export declare function initialize(appName: string): void

/** 系统媒体控制事件 */
export interface MediaControlEvent {
  /** Play / Pause / Stop / NextSong / PreviousSong / Seek */
  type: string
  /** Seek 事件的目标位置，单位毫秒 */
  positionMs?: number
}

/** 歌曲元数据 */
export interface MetadataPayload {
  /** 歌曲标题 */
  title: string
  /** 歌手名 */
  artist: string
  /** 专辑名 */
  album: string
  /** 封面图片原始字节 */
  coverData?: Array<number>
  /** 封面 HTTP URL（Linux MPRIS 备用） */
  coverUrl?: string
  /** 歌曲时长，单位毫秒 */
  durationMs?: number
}

/** 播放状态 */
export interface PlayStatePayload {
  /** Playing / Paused / Stopped */
  status: string
}

/** 注册系统媒体事件回调 */
export declare function registerEventHandler(callback: ((err: Error | null, arg: MediaControlEvent) => any)): void

/** 关闭媒体控制服务 */
export declare function shutdown(): void

/** 播放进度 */
export interface TimelinePayload {
  /** 当前播放位置，单位毫秒 */
  currentTimeMs: number
  /** 总时长，单位毫秒 */
  totalTimeMs: number
}

/** 更新歌曲元数据 */
export declare function updateMetadata(payload: MetadataPayload): void

/** 更新播放状态 */
export declare function updatePlayState(payload: PlayStatePayload): void

/** 更新播放进度 */
export declare function updateTimeline(payload: TimelinePayload): void
