import { PlayerType } from '@aigamo/nostalgic-diva';
import { IObservableStateProvider } from './IObservableStateProvider';
import { IPlayQueueItemStore, PlayQueueItemDto } from './IPlayQueueItemStore';
import { IPlayQueueStore } from './IPlayQueueStore';
import { PlayQueueStore } from './PlayQueueStore';
export declare class PlayQueueItemStore implements IPlayQueueItemStore {
    readonly observableStateProvider: IObservableStateProvider;
    readonly playQueueStore: IPlayQueueStore;
    readonly dto: PlayQueueItemDto;
    static nextId: number;
    readonly id: number;
    isSelected: boolean;
    constructor(observableStateProvider: IObservableStateProvider, playQueueStore: IPlayQueueStore, dto: PlayQueueItemDto);
    static fromDto(observableStateProvider: IObservableStateProvider, playQueueStore: PlayQueueStore, dto: PlayQueueItemDto): IPlayQueueItemStore;
    get url(): string;
    get type(): PlayerType;
    get videoId(): string;
    get title(): string;
    get isCurrent(): boolean;
    get index(): number;
    get isFirst(): boolean;
    get isLast(): boolean;
    get canMoveToTop(): boolean;
    get canMoveToBottom(): boolean;
    get canRemoveToTop(): boolean;
    get canRemoveOthers(): boolean;
    clone(): IPlayQueueItemStore;
    unselect(): void;
    toggleSelected(): void;
    play(): void;
    remove(): Promise<void>;
    playFirst(): Promise<void>;
    playNext(): Promise<void>;
    addToPlayQueue(): Promise<void>;
    moveToTop(): void;
    moveToBottom(): void;
    removeToTop(): Promise<void>;
    removeOthers(): Promise<void>;
}
