// Type definitions for MCP Sigmund
// This file contains all the proper interfaces to replace 'any' types
// ⚠️ IMPORTANT LEGAL DISCLAIMER
// MCP Sigmund is an educational learning resource and data analysis tool, NOT a financial advisor or advisory service.
// This system does NOT provide financial advice, recommendations, or guidance.
// All insights, analysis, and suggestions are for educational purposes only.
// Users must make their own financial decisions based on their own research and judgment.
// No information from this system should be considered as investment, tax, or financial advice.
// Legal disclaimer interface for all system responses
export interface LegalDisclaimer {
educational_purpose_only: boolean;
not_financial_advice: boolean;
user_responsibility: boolean;
disclaimer_text: string;
timestamp: Date;
}
// Generic metadata type for extensible data
export interface Metadata {
[key: string]:
| string
| number
| boolean
| null
| undefined
| Metadata
| Metadata[];
}
// Raw data type for external API responses
export interface RawData {
[key: string]: unknown;
}
// Query parameters for database operations
export interface QueryParams {
[key: string]: string | number | boolean | null | undefined;
}
// Database query result types
export interface DatabaseQueryResult<T = unknown> {
rows: T[];
rowCount: number;
command: string;
oid: number;
fields: Array<{
name: string;
tableID: number;
columnID: number;
dataTypeID: number;
dataTypeSize: number;
dataTypeModifier: number;
format: string;
}>;
}
// Banking query result types
export interface BankingQueryResult {
success: boolean;
query: string;
provider: string;
data?: unknown;
error?: string;
code?: string;
context?: string;
timestamp?: string;
[key: string]: unknown; // Allow additional properties
}
// Data operation result types
export interface DataOperationResult {
success: boolean;
operation: string;
target: string;
data?: unknown;
error?: string;
code?: string;
context?: string;
timestamp?: string;
}
// Smart response types
export interface SmartResponse {
data: unknown;
display_hints?: {
format?: 'table' | 'chart' | 'list' | 'summary';
columns?: string[];
sort_by?: string;
group_by?: string;
};
metadata?: {
total_count?: number;
filtered_count?: number;
execution_time?: number;
cache_hit?: boolean;
};
}
// User context detection result
export interface UserContext {
intent: 'analysis' | 'reporting' | 'monitoring' | 'exploration';
timeframe: 'recent' | 'monthly' | 'yearly' | 'custom';
focus: 'transactions' | 'balances' | 'spending' | 'income' | 'overview';
urgency: 'low' | 'medium' | 'high';
}
// Performance monitoring types
export interface QueryPerformanceMetrics {
query: string;
execution_time: number;
row_count: number;
cache_hit: boolean;
timestamp: string;
parameters?: QueryParams;
}
export interface SystemMetrics {
memory_usage: {
rss: number;
heapTotal: number;
heapUsed: number;
external: number;
};
cpu_usage: number;
uptime: number;
timestamp: string;
}
// Error details type
export interface ErrorDetails {
message: string;
stack?: string;
code?: string;
context?: string;
timestamp: string;
[key: string]: unknown;
}
// Configuration types
export interface DatabaseConfig {
connectionString: string;
max?: number;
idleTimeoutMillis?: number;
connectionTimeoutMillis?: number;
ssl?: {
rejectUnauthorized: boolean;
};
}
export interface ProviderConfig {
defaultBehavior: string;
availableProviders: string[];
displayNames: Record<string, string>;
}
// Cache types
export interface CacheEntry<T = unknown> {
key: string;
value: T;
expires_at: number;
created_at: number;
access_count: number;
}
export interface CacheConfig {
ttl: number; // Time to live in seconds
max_size: number;
cleanup_interval: number;
}
// Logging types
export interface LogEntry {
level: 'debug' | 'info' | 'warn' | 'error';
message: string;
timestamp: string;
context?: string;
metadata?: Metadata;
error?: ErrorDetails;
}
export interface StructuredLogData {
service: string;
version: string;
environment: string;
timestamp: string;
level: string;
message: string;
context?: string;
metadata?: Metadata;
error?: ErrorDetails;
performance?: {
execution_time?: number;
memory_usage?: number;
query_count?: number;
};
}