Flatlogic Bot ca3a32f23e V 4
2026-02-16 06:55:36 +00:00

32 lines
1.6 KiB
TypeScript

import { Soundcloud, SoundcloudTrack, SoundcloudPlaylist } from 'soundcloud.ts';
import { ExtractorPlugin, ResolveOptions, Song, Playlist } from 'distube';
declare enum SearchType {
Track = "track",
Playlist = "playlist"
}
interface SoundCloudPluginOptions {
clientId?: string;
oauthToken?: string;
}
declare class SoundCloudPlugin extends ExtractorPlugin {
soundcloud: Soundcloud;
constructor(options?: SoundCloudPluginOptions);
search<T>(query: string, type?: SearchType.Track, limit?: number, options?: ResolveOptions<T>): Promise<Song<T>[]>;
search<T>(query: string, type: SearchType.Playlist, limit?: number, options?: ResolveOptions<T>): Promise<Playlist<T>[]>;
search<T>(query: string, type?: SearchType, limit?: number, options?: ResolveOptions<T>): Promise<Song<T>[] | Playlist<T>[]>;
validate(url: string): boolean;
resolve<T>(url: string, options: ResolveOptions<T>): Promise<SoundCloudPlaylist<T> | SoundCloudSong<T>>;
getRelatedSongs(song: SoundCloudSong<undefined>): Promise<SoundCloudSong<unknown>[]>;
getStreamURL<T>(song: SoundCloudSong<T>): Promise<string>;
searchSong<T>(query: string, options: ResolveOptions<T>): Promise<Song<T>>;
}
declare class SoundCloudSong<T> extends Song<T> {
constructor(plugin: SoundCloudPlugin, info: SoundcloudTrack, options?: ResolveOptions<T>);
}
declare class SoundCloudPlaylist<T> extends Playlist<T> {
constructor(plugin: SoundCloudPlugin, info: SoundcloudPlaylist, options?: ResolveOptions<T>);
}
export { SearchType, SoundCloudPlugin, type SoundCloudPluginOptions, SoundCloudPlugin as default };