import { Pubby } from "../../client";
import { PubbyStream } from "../../lib/streams";
import { PubbyModule } from "../../module";
import { User } from "../../models/user";
declare module "../../client" {
    interface Pubby {
        playback: PlaybackModule;
    }
}
export declare class PlaybackModule extends PubbyModule {
    state: any;
    state$: PubbyStream<any>;
    get dj(): User;
    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: any) => void)[]): this;
    on(event: "media-update", ...listeners: ((media: any) => void)[]): this;
}
