/** * Type utilities for Memory Bank MCP * * This file contains utility types that can be used throughout the codebase. */ import { ProgressDetails, Decision, ActiveContext } from './progress.js'; import { MemoryBankStatus } from './index.js'; /** * Makes all properties of T optional */ export type Optional = Partial; /** * Makes all properties of T required */ export type Required = { [P in keyof T]-?: T[P]; }; /** * Makes all properties of T read-only */ export type Readonly = { readonly [P in keyof T]: T[P]; }; /** * Picks specific properties from T */ export type Pick = { [P in K]: T[P]; }; /** * Omits specific properties from T */ export type Omit = Pick>; /** * Utility types for MemoryBankStatus */ /** Partial version of MemoryBankStatus */ export type PartialMemoryBankStatus = Optional; /** Required version of MemoryBankStatus */ export type RequiredMemoryBankStatus = Required; /** Read-only version of MemoryBankStatus */ export type ReadonlyMemoryBankStatus = Readonly; /** Memory Bank status summary with only essential fields */ export type MemoryBankStatusSummary = Pick; /** * Utility types for ProgressDetails */ export declare namespace ProgressTypes { /** Partial version of ProgressDetails */ type PartialProgressDetails = Optional; /** Required version of ProgressDetails */ type RequiredProgressDetails = Required; /** Read-only version of ProgressDetails */ type ReadonlyProgressDetails = Readonly; } /** * Utility types for Decision */ export declare namespace DecisionTypes { /** Partial version of Decision */ type PartialDecision = Optional; /** Required version of Decision */ type RequiredDecision = Required; /** Read-only version of Decision */ type ReadonlyDecision = Readonly; /** Decision summary with only essential fields */ type DecisionSummary = Pick; } /** * Utility types for ActiveContext */ export declare namespace ActiveContextTypes { /** Partial version of ActiveContext */ type PartialActiveContext = Optional; /** Required version of ActiveContext */ type RequiredActiveContext = Required; /** Read-only version of ActiveContext */ type ReadonlyActiveContext = Readonly; }