ultimate-mcp-server
Version:
The definitive all-in-one Model Context Protocol server for AI-assisted coding across 30+ platforms
59 lines • 3.77 kB
TypeScript
/**
* Base Content Storage Interface
* Provides abstraction for different storage backends
*/
import { ContentEntry, ContentAsset, ContentType, ContentSpace, ContentEnvironment, ContentComment, ContentFilter, ContentPagination, ContentSearchOptions, ContentHistory, ContentManagerStats } from '../types.js';
export declare abstract class BaseContentStorage {
protected abstract name: string;
abstract createSpace(space: Omit<ContentSpace, 'id' | 'createdAt' | 'updatedAt'>): Promise<ContentSpace>;
abstract getSpace(spaceId: string): Promise<ContentSpace | null>;
abstract updateSpace(spaceId: string, updates: Partial<ContentSpace>): Promise<ContentSpace>;
abstract deleteSpace(spaceId: string): Promise<void>;
abstract listSpaces(): Promise<ContentSpace[]>;
abstract createEnvironment(spaceId: string, environment: Omit<ContentEnvironment, 'id' | 'spaceId' | 'createdAt' | 'updatedAt'>): Promise<ContentEnvironment>;
abstract getEnvironment(environmentId: string): Promise<ContentEnvironment | null>;
abstract listEnvironments(spaceId: string): Promise<ContentEnvironment[]>;
abstract deleteEnvironment(environmentId: string): Promise<void>;
abstract createContentType(spaceId: string, contentType: Omit<ContentType, 'id'>): Promise<ContentType>;
abstract getContentType(typeId: string): Promise<ContentType | null>;
abstract updateContentType(typeId: string, updates: Partial<ContentType>): Promise<ContentType>;
abstract deleteContentType(typeId: string): Promise<void>;
abstract listContentTypes(spaceId: string): Promise<ContentType[]>;
abstract createEntry(spaceId: string, entry: Omit<ContentEntry, 'id' | 'createdAt' | 'updatedAt' | 'version'>): Promise<ContentEntry>;
abstract getEntry(entryId: string): Promise<ContentEntry | null>;
abstract updateEntry(entryId: string, updates: Partial<ContentEntry>): Promise<ContentEntry>;
abstract deleteEntry(entryId: string): Promise<void>;
abstract searchEntries(options: ContentSearchOptions): Promise<{
entries: ContentEntry[];
pagination: ContentPagination;
}>;
abstract createAsset(spaceId: string, asset: Omit<ContentAsset, 'id' | 'createdAt' | 'updatedAt' | 'version'>): Promise<ContentAsset>;
abstract getAsset(assetId: string): Promise<ContentAsset | null>;
abstract updateAsset(assetId: string, updates: Partial<ContentAsset>): Promise<ContentAsset>;
abstract deleteAsset(assetId: string): Promise<void>;
abstract searchAssets(options: ContentSearchOptions): Promise<{
assets: ContentAsset[];
pagination: ContentPagination;
}>;
abstract createComment(comment: Omit<ContentComment, 'id' | 'createdAt' | 'updatedAt'>): Promise<ContentComment>;
abstract getComment(commentId: string): Promise<ContentComment | null>;
abstract updateComment(commentId: string, updates: Partial<ContentComment>): Promise<ContentComment>;
abstract deleteComment(commentId: string): Promise<void>;
abstract getEntryComments(entryId: string): Promise<ContentComment[]>;
abstract getCommentThread(commentId: string): Promise<ContentComment[]>;
abstract getEntryHistory(entryId: string): Promise<ContentHistory>;
abstract restoreVersion(entryId: string, version: number): Promise<ContentEntry>;
abstract getStats(spaceId?: string): Promise<ContentManagerStats>;
protected generateId(): string;
protected applyFilter<T extends {
fields?: any;
tags?: string[];
createdAt: Date;
updatedAt: Date;
}>(items: T[], filter: ContentFilter): T[];
protected paginate<T>(items: T[], pagination: ContentPagination): {
items: T[];
pagination: ContentPagination;
};
}
//# sourceMappingURL=base.d.ts.map