import type { InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'; import { type NotifySettings, type SoundId, type SoundLibrary } from '../types.ts'; import type { SoundCacheInfo } from './notifier.ts'; import type { SettingsStore } from './settings.ts'; /** Injected business face of the section. */ export interface NotifySectionInjected { /** The live settings store. */ store: SettingsStore; /** Persist one patch. */ set: (patch: Partial) => void; /** Show one test toast, optionally playing a specific sound. */ sendTest: (sound?: SoundId) => void; /** Open the Windows file picker and return the chosen wav path ('' = cancelled). */ pickFile: () => Promise; /** Read the sound library: the plugin's sounds and the user's imports. */ loadLibrary: () => Promise; /** Copy one picked file into the custom-sound folder; its name, or null. */ importSound: (file: string) => Promise; /** Delete one imported custom sound. */ deleteSound: (id: string) => Promise; /** Read the transcoded-wav cache size (null when the host is unreachable). */ cacheInfo: () => Promise; /** Empty the transcoded-wav cache. */ clearCache: () => Promise; } /** Full section props: runtime share + injected face + the locale seat. */ export type NotifySectionProps = PropsRuntime<'settings.section'> & InjectFace & PropsLocale<'notify'>; /** * The notification settings section. * @param props - section props supplied by the settings slot. * @returns the rendered section. */ export declare function NotifySettingsSection(props: NotifySectionProps): JSX.Element;