import { FlagsIds, OptionIds } from '@epicgames-ps/lib-pixelstreamingfrontend-ue5.5'; export declare class ExtraFlags { static LightMode: "LightMode"; } export type ExtraFlagsKeys = Exclude; export type ExtraFlagsIds = (typeof ExtraFlags)[ExtraFlagsKeys]; export type FlagsIdsExtended = FlagsIds | ExtraFlagsIds; export type OptionIdsExtended = OptionIds | ExtraFlagsIds; /** * All the UI sections across all the panels. */ export declare class SettingsSections { static PixelStreaming: "Pixel Streaming"; static UI: "UI"; static Input: "Input"; static Encoder: "Encoder"; static WebRTC: "WebRTC"; static Commands: "Commands"; } export type SettingsSectionsKeys = Exclude; export type SettingsSectionsIds = (typeof SettingsSections)[SettingsSectionsKeys]; export declare class StatsSections { static SessionStats: "Session Stats"; static LatencyStats: "Latency Stats"; static LatencyTest: "Latency Test"; static DataChannelLatencyTest: "Data Channel Latency Test"; } export type StatsSectionsKeys = Exclude; export type StatsSectionsIds = (typeof StatsSections)[StatsSectionsKeys]; export type SectionsIds = SettingsSectionsIds | StatsSectionsIds; /** Whether a stream UI element is internally made, externally provided, or disabled. */ export declare enum UIElementCreationMode { CreateDefaultElement = 0, UseCustomElement = 1, Disable = 2 } /** A configuration for different UI elements which control/display info related to the stream. */ export type UIElementConfig = { creationMode: UIElementCreationMode; customElement?: HTMLElement; }; /** * Configures a general stream-related UI panel. * For example: is it created, and if it is, what kind of button is used to show/hide it. * This configuration is used for the settings panel and stats panel by default. * * Note: For cases where the panel needs to be created, but a button isn't needed, * the panel element can be placed anywhere in the DOM as needed (see Application class). */ export type PanelConfiguration = { isEnabled: boolean; visibilityButtonConfig?: UIElementConfig; }; export declare function isPanelEnabled(config: PanelConfiguration | undefined): boolean; /** * Type for settings sections and a boolean to represent whether this UI section is enabled */ export type SettingsSectionsConfig = { [K in SettingsSectionsIds]: boolean; }; export type SettingsSectionsConfiguration = { sectionVisibility?: Partial; }; export type StatsSectionsConfig = { [K in StatsSectionsIds]: boolean; }; export type StatsSectionsConfiguration = { sectionVisibility?: Partial; }; export type AllSectionsConfiguration = SettingsSectionsConfiguration & StatsSectionsConfiguration; export declare function isSectionEnabled(config: AllSectionsConfiguration | undefined, section: SectionsIds): boolean; /** * Type for all settings and a boolean to represent whether this setting UI is enabled */ export type AllSettingsConfig = { [K in OptionIdsExtended]: boolean; }; export type SettingsConfiguration = { settingVisibility?: Partial; }; export declare function isSettingEnabled(config: SettingsConfiguration | undefined, setting: OptionIdsExtended): boolean; /** * Overriden panel configuration to include section visibility for the stats panel */ export type StatsPanelConfiguration = PanelConfiguration & StatsSectionsConfiguration; /** * Overriden panel configuration to include setting and section visibility for the settings panel */ export type SettingsPanelConfiguration = PanelConfiguration & SettingsConfiguration & SettingsSectionsConfiguration;