/**
 * Spotify Node - Version 1
 * Discriminator: resource=player, operation=currentlyPlaying
 */


interface Credentials {
  spotifyOAuth2Api: CredentialReference;
}

/** Get your currently playing track */
export type SpotifyV1PlayerCurrentlyPlayingParams = {
  resource: 'player';
  operation: 'currentlyPlaying';
};

export type SpotifyV1PlayerCurrentlyPlayingOutput = {
  actions?: {
    disallows?: {
      resuming?: boolean;
    };
  };
  currently_playing_type?: string;
  is_playing?: boolean;
  item?: {
    album?: {
      artists?: Array<{
        external_urls?: {
          spotify?: string;
        };
        href?: string;
        id?: string;
        name?: string;
        type?: string;
        uri?: string;
      }>;
      available_markets?: Array<string>;
      external_urls?: {
        spotify?: string;
      };
      images?: Array<{
        height?: number;
        url?: string;
        width?: number;
      }>;
      name?: string;
      total_tracks?: number;
      type?: string;
    };
    artists?: Array<{
      external_urls?: {
        spotify?: string;
      };
      name?: string;
      type?: string;
    }>;
    available_markets?: Array<string>;
    disc_number?: number;
    duration_ms?: number;
    explicit?: boolean;
    external_ids?: {
      isrc?: string;
    };
    external_urls?: {
      spotify?: string;
    };
    is_local?: boolean;
    name?: string;
    popularity?: number;
    track_number?: number;
    type?: string;
    uri?: string;
  };
  progress_ms?: number;
  timestamp?: number;
};

export type SpotifyV1PlayerCurrentlyPlayingNode = {
  type: 'n8n-nodes-base.spotify';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<SpotifyV1PlayerCurrentlyPlayingParams>;
  output?: Items<SpotifyV1PlayerCurrentlyPlayingOutput>;
};