/** * Abstract base class for manifest wrappers. * Provides common functionality for reading, writing, and tracking changes to manifest files. * * @template T - The manifest type this wrapper handles */ export declare abstract class BaseManifest> { protected _data: T; protected _filePath?: string; protected _isDirty: boolean; protected constructor(data: T, filePath?: string); /** * Returns the raw manifest data. */ get data(): Readonly; /** * Returns the file path if the manifest was loaded from a file. */ get filePath(): string | undefined; /** * Indicates whether the manifest has unsaved changes. */ get isDirty(): boolean; /** * Marks the manifest as having unsaved changes. */ protected markDirty(): void; /** * Saves the manifest to the specified file path or the original file path. * @param filePath - Optional path to save to. If not provided, uses the original file path. * @throws Error if no file path is available. */ save(filePath?: string): Promise; /** * Validates the manifest against its schema. * @returns Array of validation error messages, empty if valid. */ abstract validate(): Promise; /** * Converts the manifest to a JSON string. */ abstract toJSON(): string; /** * Creates a deep clone of this manifest wrapper. */ abstract clone(): BaseManifest; /** * Reads a JSON file and returns the parsed object. * @param filePath - Path to the JSON file */ protected static readJsonFile(filePath: string): Promise; /** * Reads a JSON file synchronously and returns the parsed object. * @param filePath - Path to the JSON file */ protected static readJsonFileSync(filePath: string): U; }