import { z } from "zod"; export const ShortcutBindingSchema = z.object({ id: z.string(), name: z.string(), description: z.string(), default_binding: z.string(), current_binding: z.string(), }); export const ShortcutBindingsMapSchema = z.record( z.string(), ShortcutBindingSchema, ); export const AudioDeviceSchema = z.object({ index: z.string(), name: z.string(), is_default: z.boolean(), }); export const SettingsSchema = z.object({ bindings: ShortcutBindingsMapSchema, push_to_talk: z.boolean(), audio_feedback: z.boolean(), selected_model: z.string(), always_on_microphone: z.boolean(), selected_microphone: z.string().nullable().optional(), selected_output_device: z.string().nullable().optional(), translate_to_english: z.boolean(), selected_language: z.string(), show_overlay: z.boolean(), debug_mode: z.boolean(), }); export const BindingResponseSchema = z.object({ success: z.boolean(), binding: ShortcutBindingSchema.nullable(), error: z.string().nullable(), }); export type AudioDevice = z.infer; export type BindingResponse = z.infer; export type ShortcutBinding = z.infer; export type ShortcutBindingsMap = z.infer; export type Settings = z.infer; export const ModelInfoSchema = z.object({ id: z.string(), name: z.string(), description: z.string(), size_mb: z.number(), is_downloaded: z.boolean(), }); export type ModelInfo = z.infer;