import { IBottomBarStore } from '../../media-player.bottom-bar.abstractions/interfaces/IBottomBarStore';
import { IPlayQueueItemStore } from '../../media-player.play-queue.abstractions/interfaces/IPlayQueueItemStore';
import { IPlayQueueStore } from '../../media-player.play-queue.abstractions/interfaces/IPlayQueueStore';
import { RepeatMode } from '../../media-player.play-queue.abstractions/interfaces/RepeatMode';
import { IPlayerStore } from '../../media-player.player.abstractions/interfaces/IPlayerStore';
import { IPlayerController } from '@aigamo/nostalgic-diva';
import { IStateStore } from '@aigamo/route-sphere';
import { JSONSchemaType } from 'ajv';
interface BottomBarLocalStorageState {
    repeat?: RepeatMode;
    shuffle?: boolean;
}
export declare const BottomBarLocalStorageStateSchema: JSONSchemaType<BottomBarLocalStorageState>;
declare class BottomBarLocalStorageStateStore implements IStateStore<BottomBarLocalStorageState> {
    private readonly bottomBar;
    constructor(bottomBar: BottomBarStore);
    get state(): BottomBarLocalStorageState;
    set state(value: BottomBarLocalStorageState);
    validateState(state: unknown): state is BottomBarLocalStorageState;
}
export declare class BottomBarStore implements IBottomBarStore {
    private readonly player;
    private readonly playQueue;
    readonly localStorageState: BottomBarLocalStorageStateStore;
    repeat: RepeatMode;
    shuffle: boolean;
    constructor(player: IPlayerStore, playQueue: IPlayQueueStore);
    get controller(): IPlayerController;
    get playing(): boolean;
    get percent(): number;
    get canSeek(): boolean;
    get currentItem(): IPlayQueueItemStore | undefined;
    get canToggleRepeat(): boolean;
    get canToggleShuffle(): boolean;
    get canPlay(): boolean;
    get canPause(): boolean;
    get canPrevious(): boolean;
    get canNext(): boolean;
    get canSkipBack10(): boolean;
    get canSkipForward30(): boolean;
    get canRemoveFromPlayQueue(): boolean;
    setPercent(value: number): void;
    setSeeking(value: boolean): void;
    toggleRepeat(): void;
    toggleShuffle(): void;
    play(): Promise<void>;
    pause(): Promise<void>;
    previous(): Promise<void>;
    next(): Promise<void>;
    skipBack10(): Promise<void>;
    skipForward30(): Promise<void>;
    removeFromPlayQueue(): Promise<void>;
}
export {};
