import { RootMenuId, type SettingsMenuItem } from './types';
import { type VideoPlaybackRate, type VideoSubtitle } from '../../../types';
import type { IAudioStream, PlaybackRate, VideoQuality } from '@vkontakte/videoplayer-core';
import type { QualitySettingsAppliesTo } from '../../../utils/userSettings';
export type Context = {
    currentPlaybackRate: number;
    availablePlaybackRates: VideoPlaybackRate[];
    selectPlaybackRate: (playbackRate: PlaybackRate) => void;
    trafficSavingEnabled: boolean;
    toggleTrafficSaving: (value: boolean, appliesTo: QualitySettingsAppliesTo) => void;
    currentQuality: VideoQuality;
    isAutoQualityEnabled: boolean;
    isMobile: boolean;
    currentAudioStream: IAudioStream | undefined;
    availableAudioStreams: IAudioStream[];
    qualityDetailsSubMenuEnabled: boolean;
    currentSubtitle: Omit<VideoSubtitle, 'selected'>;
    onDownloadClick: () => void;
    onReportProblemClick: () => void;
    onCopyDataClick: () => void;
    onSaveTraceDataClick: () => void;
    toggleShowDebugInfo: () => void;
    debugPanelVisible: boolean;
};
/**
 * Мапа элементов меню, которые показываются на первом уровне.
 */
export declare const RootMenuItemMap: Record<RootMenuId, (context: Context) => SettingsMenuItem>;
type Params = {
    items: RootMenuId[];
    context: Context;
    additionalSettingsMenuItems: SettingsMenuItem[];
};
export declare const getRootMenuItems: ({ items, context, additionalSettingsMenuItems }: Params) => SettingsMenuItem[];
export {};
