@codai/cbd
Version:
Codai Better Database - High-Performance Vector Memory System with HPKV-inspired architecture and MCP server
116 lines • 4.06 kB
TypeScript
/**
* Universal Data Adapter
* Cloud-agnostic data access layer for CBD Universal Database
* Provides unified interface for AWS, Azure, GCP, and Local operations
*/
import { CloudProvider } from './IntelligentCloudSelector.js';
import { MultiCloudConfiguration } from './MultiCloudConfiguration.js';
export interface UniversalDocument {
id?: string;
collection: string;
data: Record<string, any>;
metadata?: Record<string, any>;
timestamp?: Date;
}
export interface UniversalQuery {
collection: string;
filter?: Record<string, any>;
projection?: Record<string, any>;
sort?: Record<string, any>;
limit?: number;
skip?: number;
}
export interface UniversalResult {
documents: UniversalDocument[];
count: number;
hasMore: boolean;
cursor?: string;
}
export interface OperationResult {
success: boolean;
result?: any;
error?: string;
cloud: CloudProvider;
latency: number;
cost?: number;
}
export interface CloudAdapterMetrics {
operationsCount: number;
averageLatency: number;
errorRate: number;
uptime: number;
lastOperation: Date;
}
/**
* Base Cloud Adapter Interface
*/
export declare abstract class BaseCloudAdapter {
protected config: MultiCloudConfiguration;
protected metrics: CloudAdapterMetrics;
constructor(config: MultiCloudConfiguration);
abstract create(document: UniversalDocument): Promise<UniversalDocument>;
abstract read(query: UniversalQuery): Promise<UniversalResult>;
abstract update(id: string, data: Partial<UniversalDocument>): Promise<UniversalDocument>;
abstract delete(id: string): Promise<boolean>;
abstract healthCheck(): Promise<boolean>;
getMetrics(): Promise<CloudAdapterMetrics>;
protected updateMetrics(latency: number, success: boolean): void;
}
/**
* AWS Data Adapter
*/
export declare class AWSDataAdapter extends BaseCloudAdapter {
create(document: UniversalDocument): Promise<UniversalDocument>;
read(query: UniversalQuery): Promise<UniversalResult>;
update(id: string, data: Partial<UniversalDocument>): Promise<UniversalDocument>;
delete(id: string): Promise<boolean>;
healthCheck(): Promise<boolean>;
}
/**
* Azure Data Adapter
*/
export declare class AzureDataAdapter extends BaseCloudAdapter {
create(document: UniversalDocument): Promise<UniversalDocument>;
read(query: UniversalQuery): Promise<UniversalResult>;
update(id: string, data: Partial<UniversalDocument>): Promise<UniversalDocument>;
delete(id: string): Promise<boolean>;
healthCheck(): Promise<boolean>;
}
/**
* GCP Data Adapter
*/
export declare class GCPDataAdapter extends BaseCloudAdapter {
create(document: UniversalDocument): Promise<UniversalDocument>;
read(query: UniversalQuery): Promise<UniversalResult>;
update(id: string, data: Partial<UniversalDocument>): Promise<UniversalDocument>;
delete(id: string): Promise<boolean>;
healthCheck(): Promise<boolean>;
}
/**
* Local Data Adapter (fallback)
*/
export declare class LocalDataAdapter extends BaseCloudAdapter {
private dataStore;
create(document: UniversalDocument): Promise<UniversalDocument>;
read(query: UniversalQuery): Promise<UniversalResult>;
update(id: string, data: Partial<UniversalDocument>): Promise<UniversalDocument>;
delete(id: string): Promise<boolean>;
healthCheck(): Promise<boolean>;
}
/**
* Cloud Adapter Factory
*/
export declare class CloudAdapterFactory {
static createAdapter(provider: CloudProvider, config: MultiCloudConfiguration): BaseCloudAdapter;
}
/**
* Multi-Cloud Data Router
*/
export declare class MultiCloudDataRouter {
private adapters;
constructor(config: MultiCloudConfiguration);
route(operation: 'create' | 'read' | 'update' | 'delete', provider: CloudProvider, ...args: any[]): Promise<any>;
healthCheck(): Promise<Record<CloudProvider, boolean>>;
getAdapterMetrics(): Promise<Record<CloudProvider, CloudAdapterMetrics | null>>;
}
//# sourceMappingURL=UniversalDataAdapter.d.ts.map