export interface PackageReference { readonly package: string; readonly optional?: boolean; readonly api?: string; } export interface ChildPluginReference extends PackageReference { readonly instanceKey: string; } export interface ZhinPluginManifest { readonly protocol: 1; readonly type: 'plugin'; readonly entry: string; readonly engine?: string; readonly runtime?: 'trusted' | 'isolated'; /** * When true (default), Root plugins receive official Stable Features * (`@zhin.js/adapter|command|component`) from the platform/CLI even if they * are omitted from `features` / project dependencies. Set false to opt out. */ readonly platformFeatures?: boolean; readonly features: readonly PackageReference[]; readonly plugins: readonly ChildPluginReference[]; } export interface ZhinFeatureManifest { readonly protocol: 1; readonly type: 'feature'; readonly entry: string; readonly engine?: string; readonly featureApi?: string; } export type ZhinPackageManifest = ZhinPluginManifest | ZhinFeatureManifest; export interface PackageJson { readonly name: string; readonly version?: string; readonly type?: 'module' | 'commonjs'; readonly main?: string; readonly exports?: unknown; readonly imports?: unknown; readonly private?: boolean; readonly dependencies?: Readonly>; readonly optionalDependencies?: Readonly>; readonly peerDependencies?: Readonly>; readonly devDependencies?: Readonly>; readonly scripts?: Readonly>; readonly zhin: ZhinPackageManifest; } export declare class ManifestValidationError extends Error { readonly issues: readonly string[]; constructor(issues: readonly string[]); } export declare function parsePackageJson(value: unknown, source: string): PackageJson;