import { InitialStateOfControlSlice, SongReduxPlaylistSchema } from './types';
import { PayloadAction, Slice, Selector, ActionCreatorWithPayload, ActionCreatorWithoutPayload } from '@reduxjs/toolkit';
import { WritableDraft } from 'immer';
export declare const controlsSlice: Slice<InitialStateOfControlSlice, {
    addRecommendationInThePlaylist: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<SongReduxPlaylistSchema[]>) => void;
    addSongsInThePlaylist: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<SongReduxPlaylistSchema[]>) => void;
    addActiveSongInTheHistory: (state: WritableDraft<InitialStateOfControlSlice>) => void;
    addSongInTheFavourites: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<{
        songId: string;
    }>) => void;
    removeSongFromTheFavourites: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<{
        songId: string;
    }>) => void;
    changeActiveSongTrackByStep: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<number>) => void;
    changeActiveSongTrack: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<{
        songId: string;
    }>) => void;
    setActiveSongIndex: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<number>) => void;
    setIsReady: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<boolean>) => void;
    setIsPlaying: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<boolean>) => void;
    setVolume: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<number>) => void;
    setBufferedProgress: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<number>) => void;
    setTotalSongDuration: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<number>) => void;
    setSeekProgress: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<number>) => void;
    setIsSeeking: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<boolean>) => void;
    setActiveSongPlayback: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<{
        seekPercentage?: number;
        seekTime?: number;
    }>) => void;
    setRepeatOfActiveSong: (state: WritableDraft<InitialStateOfControlSlice>, action: PayloadAction<boolean>) => void;
}, "playerControls", "playerControls", {
    selectIsMusicToBeRepeated: (state: InitialStateOfControlSlice) => boolean;
    selectPlaylistSongs: (state: InitialStateOfControlSlice) => SongReduxPlaylistSchema[];
    selectActiveSongIndex: (state: InitialStateOfControlSlice) => number;
    selectActiveSong: (state: InitialStateOfControlSlice) => SongReduxPlaylistSchema;
    selectActiveSongStates: (state: InitialStateOfControlSlice) => {
        isReady: boolean;
        isPlaying: boolean;
        isSeeking: boolean;
        progressIndicator: {
            bufferedDuration: number;
            totalSongDuration: number;
            seekProgress: number;
        };
    };
    selectVolumeBarProgress: (state: InitialStateOfControlSlice) => number;
    selectTotalSongDurationOfActiveSong: (state: InitialStateOfControlSlice) => number;
    selectActiveSongSeekProgress: (state: InitialStateOfControlSlice) => number;
    selectIsActiveSongCurrentlyPlaying: (state: InitialStateOfControlSlice) => boolean;
    selectHistorySongIds: (state: InitialStateOfControlSlice) => string[];
    selectFavouriteSongIds: (state: InitialStateOfControlSlice) => string[];
}>;
export declare const selectActiveSongIndex: Selector<{
    playerControls: InitialStateOfControlSlice;
}, number, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => number;
}, selectActiveSong: Selector<{
    playerControls: InitialStateOfControlSlice;
}, SongReduxPlaylistSchema, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => SongReduxPlaylistSchema;
}, selectVolumeBarProgress: Selector<{
    playerControls: InitialStateOfControlSlice;
}, number, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => number;
}, selectTotalSongDurationOfActiveSong: Selector<{
    playerControls: InitialStateOfControlSlice;
}, number, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => number;
}, selectActiveSongSeekProgress: Selector<{
    playerControls: InitialStateOfControlSlice;
}, number, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => number;
}, selectIsActiveSongCurrentlyPlaying: Selector<{
    playerControls: InitialStateOfControlSlice;
}, boolean, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => boolean;
}, selectHistorySongIds: Selector<{
    playerControls: InitialStateOfControlSlice;
}, string[], []> & {
    unwrapped: (state: InitialStateOfControlSlice) => string[];
}, selectFavouriteSongIds: Selector<{
    playerControls: InitialStateOfControlSlice;
}, string[], []> & {
    unwrapped: (state: InitialStateOfControlSlice) => string[];
}, selectActiveSongStates: Selector<{
    playerControls: InitialStateOfControlSlice;
}, {
    isReady: boolean;
    isPlaying: boolean;
    isSeeking: boolean;
    progressIndicator: {
        bufferedDuration: number;
        totalSongDuration: number;
        seekProgress: number;
    };
}, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => {
        isReady: boolean;
        isPlaying: boolean;
        isSeeking: boolean;
        progressIndicator: {
            bufferedDuration: number;
            totalSongDuration: number;
            seekProgress: number;
        };
    };
}, selectPlaylistSongs: Selector<{
    playerControls: InitialStateOfControlSlice;
}, SongReduxPlaylistSchema[], []> & {
    unwrapped: (state: InitialStateOfControlSlice) => SongReduxPlaylistSchema[];
}, selectIsMusicToBeRepeated: Selector<{
    playerControls: InitialStateOfControlSlice;
}, boolean, []> & {
    unwrapped: (state: InitialStateOfControlSlice) => boolean;
};
export declare const addRecommendationInThePlaylist: ActionCreatorWithPayload<SongReduxPlaylistSchema[], "playerControls/addRecommendationInThePlaylist">, addSongsInThePlaylist: ActionCreatorWithPayload<SongReduxPlaylistSchema[], "playerControls/addSongsInThePlaylist">, addActiveSongInTheHistory: ActionCreatorWithoutPayload<"playerControls/addActiveSongInTheHistory">, changeActiveSongTrackByStep: ActionCreatorWithPayload<number, "playerControls/changeActiveSongTrackByStep">, addSongInTheFavourites: ActionCreatorWithPayload<{
    songId: string;
}, "playerControls/addSongInTheFavourites">, removeSongFromTheFavourites: ActionCreatorWithPayload<{
    songId: string;
}, "playerControls/removeSongFromTheFavourites">, changeActiveSongTrack: ActionCreatorWithPayload<{
    songId: string;
}, "playerControls/changeActiveSongTrack">, setActiveSongIndex: ActionCreatorWithPayload<number, "playerControls/setActiveSongIndex">, setIsReady: ActionCreatorWithPayload<boolean, "playerControls/setIsReady">, setIsPlaying: ActionCreatorWithPayload<boolean, "playerControls/setIsPlaying">, setIsSeeking: ActionCreatorWithPayload<boolean, "playerControls/setIsSeeking">, setVolume: ActionCreatorWithPayload<number, "playerControls/setVolume">, setSeekProgress: ActionCreatorWithPayload<number, "playerControls/setSeekProgress">, setActiveSongPlayback: ActionCreatorWithPayload<{
    seekPercentage?: number;
    seekTime?: number;
}, "playerControls/setActiveSongPlayback">, setBufferedProgress: ActionCreatorWithPayload<number, "playerControls/setBufferedProgress">, setTotalSongDuration: ActionCreatorWithPayload<number, "playerControls/setTotalSongDuration">, setRepeatOfActiveSong: ActionCreatorWithPayload<boolean, "playerControls/setRepeatOfActiveSong">;
