import { CBFileSystem } from '../node/file-system'; import { AllowedModule, Manifest } from '../types/common'; /** * ManifestValidator provides validation for Chargebee Apps application manifests * Public implementation for validating user applications */ export declare class ManifestValidator { private allowedModules; private fileSystem; constructor(allowedModulesConfig: AllowedModule[], fileSystem: CBFileSystem); /** * Validates a manifest file from disk * @param {string} path - Path to the manifest.json file * @returns {Object} The validated manifest * @throws {Error} If manifest file is invalid or cannot be read */ validateAndGetManifestFile(path: string): Manifest; /** * Validates a complete manifest object * @param {Manifest} manifest - The manifest object to validate * @returns {Manifest} The validated manifest * @throws {Error} If manifest is invalid */ protected validate(manifest: Manifest): void; /** * Validates the basic structure of the manifest * @param {Object} manifest - The manifest object * @throws {Error} If basic structure is invalid */ protected validateBasicStructure(manifest: Manifest): void; /** * Validates the events configuration * @param {Object} manifest - The manifest object * @throws {Error} If events configuration is invalid */ protected validateEvents(manifest: Manifest): void; /** * Validates the dependencies configuration * @param {Object} manifest - The manifest object * @throws {Error} If dependencies are invalid */ protected validateDependencies(manifest: Manifest): void; /** * Validates the metadata fields * @param {Object} manifest - The manifest object */ protected validateMetadata(manifest: Manifest): void; }