import { BridgePostEventWithoutArgsName } from './post-event'; import { TwaThemeParams } from 'twa-theme-params'; /** * Information returned by "web_app_request_viewport" event. */ export interface RequestViewportInfo { height: number; isExpanded: boolean; isStateStable: boolean; } /** * Information returned by "web_app_request_theme" event. */ export interface RequestThemeInfo extends TwaThemeParams { } /** * Describes list of events, which could be awaited by Bridge. Key is event * name, value is Promise result. */ export interface BridgePostAwaitEventsMap { /** * @see BridgePostEventsMap.web_app_request_theme * @see BridgeEventsMap.theme_changed */ web_app_request_theme: RequestThemeInfo; /** * @see BridgePostEventsMap.web_app_request_viewport * @see BridgeEventsMap.viewport_changed */ web_app_request_viewport: RequestViewportInfo; /** * @see BridgePostEventsMap.web_app_open_popup * @see BridgeEventsMap.popup_closed */ web_app_open_popup: string | null; } /** * Event names which could be awaited by Bridge. */ export declare type BridgePostAwaitEventName = keyof BridgePostAwaitEventsMap; /** * Names of awaitable events, which do not require arguments. */ export declare type BridgePostAwaitEventWithoutArgsName = Extract; /** * Names of awaitable events, which require arguments. */ export declare type BridgePostAwaitEventWithArgsName = Exclude; /** * Returns post awaitable event args. */ export declare type BridgePostAwaitEventResult = BridgePostAwaitEventsMap[E];