// Public surface of the external-integration client layer.
export { integrationsConfig } from './config.js';
export type {
  IntegrationsConfig,
  MusicBrainzConfig,
  LastFmConfig,
  DiscogsConfig,
  LrcLibConfig,
  CoverArtConfig,
  WikimediaConfig,
} from './config.js';

export { requestJson, buildUserAgent, HttpError } from './http.js';
export type { RequestJsonOptions } from './http.js';

export { MusicBrainzClient } from './musicbrainz.client.js';
export type { RecordingMatch, RecordingDetail, RecordingCredit, ArtistTag as MusicBrainzArtistTag } from './musicbrainz.client.js';

export { LastFmClient } from './lastfm.client.js';
export type {
  SimilarArtist,
  SimilarTrack,
  ArtistTag as LastFmArtistTag,
} from './lastfm.client.js';

export { DiscogsClient } from './discogs.client.js';
export type { DiscogsRelease } from './discogs.client.js';

export { LrcLibClient } from './lrclib.client.js';
export type { LyricsResult } from './lrclib.client.js';

export { CoverArtClient } from './coverart.client.js';

export { ITunesClient, upscaleITunesArtwork } from './itunes.client.js';
export type { ITunesAlbum } from './itunes.client.js';

export { DeezerClient } from './deezer.client.js';
export type { DeezerAlbum, DeezerAlbumRelease } from './deezer.client.js';

export { WikimediaClient } from './wikimedia.client.js';

export { WikidataClient } from './wikidata.client.js';

export { FanartClient } from './fanart.client.js';

export { TheAudioDbClient } from './theaudiodb.client.js';
