/**
 * Plugin capability manifest validation and resolution.
 *
 * Implements deny-by-default capability enforcement:
 * 1. Parse raw manifest capabilities (unknown → typed)
 * 2. Validate that each requested capability is a known capability
 * 3. Run the runtime's capability policy to grant or deny each capability
 * 4. Return a resolved PluginCapabilityManifest
 */
import { type PluginCapability, type PluginCapabilityManifest, type PluginManifestV2 } from './types.js';
import { type PluginTrustTier } from './trust.js';
/**
 * resolveCapabilityManifest — Parse and resolve the capability manifest for a
 * plugin, applying the runtime's capability policy and trust-tier constraints.
 *
 * Evaluation order:
 *   1. Unknown capability strings are filtered out (warn + ignore).
 *   2. Trust-tier constraints are applied — high-risk capabilities blocked
 *      unless the plugin has the `trusted` tier.
 *   3. The runtime capability policy callback is applied to the remaining set.
 *
 * @param pluginName - Plugin name (for logging).
 * @param manifest   - The raw plugin manifest (may have `capabilities` array).
 * @param policy     - Capability grant/deny callback. Defaults to permissive.
 * @param trustTier  - Effective trust tier for this plugin. Defaults to 'untrusted'.
 * @returns A fully-resolved PluginCapabilityManifest.
 */
export declare function resolveCapabilityManifest(pluginName: string, manifest: PluginManifestV2, policy?: (name: string, cap: PluginCapability) => boolean, trustTier?: PluginTrustTier): PluginCapabilityManifest;
/**
 * isHighRiskCapability — Returns whether a capability is classified as high-risk.
 * High-risk capabilities require the `trusted` tier to be granted.
 */
export declare function isHighRiskCapability(capability: PluginCapability): boolean;
/**
 * hasCapability — Returns whether a plugin has been granted a specific
 * capability after manifest resolution.
 */
export declare function hasCapability(manifest: PluginCapabilityManifest, capability: PluginCapability): boolean;
/**
 * validateManifestV2 — Light validation of the PluginManifestV2 shape.
 * Returns null on success or an error string on failure.
 */
export declare function validateManifestV2(manifest: unknown): string | null;
//# sourceMappingURL=manifest.d.ts.map