@pubby/sdk
Version:
Pubby Development Kit
38 lines (37 loc) • 1.38 kB
TypeScript
import { Pubby } from "../../client";
import { PubbyStream } from "../../lib/streams";
import { Playback } from "../../models/playback";
import { User } from "../../models/user";
import { PubbyModule } from "../../module";
import { MediaActionsUpdateResponse } from "../../websocket/incoming";
declare module "../../client" {
interface Pubby {
playback: PlaybackModule;
}
}
export declare class PlaybackModule extends PubbyModule {
state: Playback;
state$: PubbyStream<any>;
actions$: PubbyStream<MediaActionsUpdateResponse>;
actions: {
likes: Set<string>;
dislikes: Set<string>;
adds: Set<string>;
};
get dj(): any;
get duration(): number;
get currentTime(): number;
get progress(): number;
constructor(client: Pubby);
init(): void;
skip(): void;
add(playlistId: string): void;
like(): void;
dislike(): void;
isDj(userId: string): boolean;
on(event: "load", ...listeners: ((state: any) => void)[]): this;
on(event: "dj-update", ...listeners: ((user: User) => void)[]): this;
on(event: "update", ...listeners: ((state: Playback) => void)[]): this;
on(event: "media-update", ...listeners: ((media: any) => void)[]): this;
on(event: "actions-update", ...listeners: ((state: PlaybackModule["actions"]) => void)[]): this;
}