export interface VaultServer { id: string name: string url: string description?: string // KV v2 is enforced - no version selection needed savedCredentials?: VaultCredentials // Optional saved credentials (WARNING: stored in localStorage) } export interface VaultCredentials { serverId: string token?: string username?: string password?: string authMethod: 'token' | 'userpass' | 'ldap' } export interface MountPoint { path: string type: string description: string accessor: string config: { default_lease_ttl: number max_lease_ttl: number } options: | { version?: string } | Record } export interface VaultConnection { server: VaultServer credentials: VaultCredentials isConnected: boolean lastConnected?: Date mountPoints?: MountPoint[] } export interface VaultSecret { path: string data: Record metadata?: { created_time: string deletion_time: string destroyed: boolean version: number } }