import { UIThemeInfo } from "./ui-types.mjs"; /** * Shows the fullscreen dialog with the given title, message, and optional prompt. * * @param {object} details - Options for showing the dialog. * @param {string} details.title - Title of the dialog. * @param {string} details.message - Message to display in the dialog body. * @param {boolean} [details.prompt] - If true, shows a text input for prompting the user. * @returns {Promise} - A promise that resolves with the text entered by the user (if prompt is true) or null if canceled/dismissed. */ export interface FullscreenDialogController { close: () => void; update: (opts: { title?: string; msg?: string; animationEmoji?: string; }) => void; } export interface ShowFullscreenDialogOpts { title: string; msg: string; /** * determines if to show the cancel button. does NOT control whether or not * we show the input control. * * so if you want to prompt just for a boolean, just set this to true. If * you need actual string input from the user, set {@link showInput} to * true. * * @see {@link showInput} */ prompt?: boolean; /** * this flag determines if the user input field is shown. If this is truthy, * then {@link prompt} will be ignored and always set to `true`. * * @see {@link prompt} */ showInput?: boolean; defaultValue?: string; okButtonTitle?: string; cancelButtonTitle?: string; isPassword?: boolean; isBusy?: boolean; animationEmoji?: string; passkeys?: Record; passkeyButtonTitle?: string; onPasskeyAuth?: (passkeyEntry?: any) => Promise; } export declare function showFullscreenDialog(opts: ShowFullscreenDialogOpts & { isBusy: true; }): Promise; export declare function showFullscreenDialog(opts: ShowFullscreenDialogOpts & { isBusy?: false; }): Promise; /** * Gets {@link UIThemeInfo} if it exists in the db ({@link dbName}) and store * ({@link storeName}) at the given {@link key}. * * Used with libs\web-gib\src\api\commands\ui\update-css-variables.mts * * @see {@link putUIInfoInStore} * @see {@link UI_THEME_INFO_KEY} * @see {@link putUIInfoInStore} * @see {@link getGlobalDbName} * @see {@link getGlobalStoreName} */ export declare function getExistingUIInfo({ dbName, storeName, key, }: { dbName: string; storeName: string; key?: string; }): Promise; /** * Complementing {@link getExistingUIInfo}, this puts {@link newUIInfo} in the * db ({@link dbName}) and into the store ({@link storeName}) at the given * {@link key}. * * Used with libs\web-gib\src\api\commands\ui\update-css-variables.mts * * @see {@link getExistingUIInfo} * @see {@link UI_THEME_INFO_KEY} * @see {@link putUIInfoInStore} * @see {@link getGlobalDbName} * @see {@link getGlobalStoreName} */ export declare function putUIInfoInStore({ dbName, storeName, key, newUIInfo, }: { dbName: string; storeName: string; key?: string; newUIInfo: UIThemeInfo; }): Promise; //# sourceMappingURL=ui-helpers.d.mts.map