import type { ArkmeAuthSnapshot, ArkmeBackgroundSoundEligibilityReason, ArkmeBackgroundSoundPreference, ArkmeClientConfig, ArkmeUserProfile, ArkmeUserProfileSnapshot } from '../types.js'; import { type ArkmeAppUpdateSnapshot } from './app-update-store.js'; import { type ArkmeDesktopNotificationPermission } from './desktop-notification-runtime.js'; import { type ArkmeMicrophonePermissionState } from './record-input-capture.js'; export type ArkmeBackgroundSoundEligibilityStatus = 'loading' | ArkmeBackgroundSoundEligibilityReason; export type ArkmeBackgroundSoundCapabilityStatus = 'loading' | 'supported' | 'unsupported'; export declare function resolveArkmeBackgroundSoundEligibility(preference: Pick | undefined): ArkmeBackgroundSoundEligibilityReason; export declare function describeArkmeBackgroundSoundSetting(input: { capability: ArkmeBackgroundSoundCapabilityStatus; eligibility: ArkmeBackgroundSoundEligibilityStatus; enabled: boolean; permission: ArkmeMicrophonePermissionState; }): string; export declare function BackgroundSoundSettingsRow({ checked, busy, disabled, description, onChange, }: { checked: boolean; busy: boolean; disabled?: boolean; description: string; onChange: (checked: boolean) => void; }): import("react").JSX.Element; interface VersionSettingsRowProps { title: string; version: string; feedback?: string; actionLabel?: string; onAction?: () => void; } export declare function VersionSettingsRow({ title, version, feedback, actionLabel, onAction, }: VersionSettingsRowProps): import("react").JSX.Element; export declare function WechatBindingSettingsRow({ bound, nickname, onBind, busy }: { bound: boolean | undefined; nickname?: string | undefined; onBind?: (() => void) | undefined; busy?: boolean; }): import("react").JSX.Element; export declare function buildProfileShareUrl(shareWebsite: string | undefined, arkmeId: string): string; export declare function profileQrDataUrlFromShareUrl(shareUrl: string): string; export declare function EmailBindDialog({ profile, onClose, onUpdated }: { profile: ArkmeUserProfile; onClose: () => void; onUpdated: (snapshot: ArkmeUserProfileSnapshot) => void; }): import("react").JSX.Element; export declare function PhoneBindDialog({ config, profile, onClose, onUpdated, }: { config: ArkmeClientConfig | undefined; profile: ArkmeUserProfile; onClose: () => void; onUpdated: (snapshot: ArkmeUserProfileSnapshot, auth: ArkmeAuthSnapshot) => void; }): import("react").JSX.Element; type OverflowYReader = (element: HTMLElement) => string; export declare function scrollArkmeSettingsSurface(surface: HTMLElement | null, readOverflowY?: OverflowYReader): void; export interface ArkmeAppUpdateRow { label: string; current: string; latest: string; feedback?: string; } interface ArkmeDesktopScope { readonly arkmeDesktop?: Readonly<{ appVersion?: string; harnessVersion?: string; }>; } export declare function aboutArkmeVersion(currentVersion: string | undefined, scope?: ArkmeDesktopScope): string; export declare function aboutHarnessVersion(scope?: ArkmeDesktopScope): string; export declare function updateVersionText(current: string, latest: string): string; export declare function buildArkmeAppUpdateRow(input: { app?: Pick; appError?: string; }): ArkmeAppUpdateRow; export declare function arkmeNotificationPermissionLabel(permission: ArkmeDesktopNotificationPermission): string; export declare function ArkmeSettingsSurface({ view }?: { view?: 'account' | 'general' | 'about'; }): import("react").JSX.Element; export {}; //# sourceMappingURL=ArkmeSettingsSurface.d.ts.map