/** * Export/Import Types */ export interface ExportOptions { format?: 'json' | 'yaml'; pretty?: boolean; include?: ExportInclude[]; exclude?: ExportExclude[]; encryption?: EncryptionConfig; } export interface ImportOptions { format?: 'json' | 'yaml'; overwrite?: boolean; merge?: boolean; validate?: boolean; dryRun?: boolean; encryption?: EncryptionConfig; } export interface EncryptionConfig { enabled: boolean; key: string; algorithm?: 'aes-256-gcm' | 'aes-256-cbc'; } export type ExportInclude = 'models' | 'policies' | 'users' | 'configurations' | 'templates' | 'webhooks' | 'apiKeys' | 'analytics'; export type ExportExclude = ExportInclude; export interface ExportedModel { id: string; name: string; provider: string; config: Record; [key: string]: string | number | boolean | Record; } export interface ExportedPolicy { id: string; name: string; strategy: string; rules: Array>; [key: string]: string | number | boolean | Array>; } export interface ExportedUser { id: string; email: string; role: string; permissions: string[]; [key: string]: string | number | boolean | string[]; } export interface ExportedConfiguration { [key: string]: string | number | boolean | null | ExportedConfiguration; } export interface ExportedTemplate { id: string; name: string; content: string; variables: string[]; [key: string]: string | number | boolean | string[]; } export interface ExportedWebhook { id: string; url: string; events: string[]; enabled: boolean; [key: string]: string | number | boolean | string[]; } export interface ExportData { version: string; exportedAt: string; metadata: ExportMetadata; data: { models?: ExportedModel[]; policies?: ExportedPolicy[]; users?: ExportedUser[]; configurations?: ExportedConfiguration; templates?: ExportedTemplate[]; webhooks?: ExportedWebhook[]; }; } export interface ExportMetadata { source: string; version: string; checksum?: string; encrypted?: boolean; } export interface ImportResult { success: boolean; imported: ImportedItem[]; skipped: SkippedItem[]; errors: ImportError[]; summary: ImportSummary; } export interface ImportedItem { type: string; id: string; name: string; action: 'created' | 'updated' | 'merged'; } export interface SkippedItem { type: string; id: string; reason: string; } export interface ImportErrorDetails { code?: string; field?: string; expected?: string; actual?: string; [key: string]: string | number | boolean | undefined; } export interface ImportError { type: string; id?: string; error: string; details?: ImportErrorDetails; } export interface ImportSummary { total: number; imported: number; skipped: number; failed: number; durationMs: number; } export interface ValidationResult { valid: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; } export type ValidationValue = string | number | boolean | null | ValidationValue[] | { [key: string]: ValidationValue; }; export interface ValidationError { path: string; message: string; value?: ValidationValue; } export interface ValidationWarning { path: string; message: string; } //# sourceMappingURL=types.d.ts.map