import type { Extension } from "../contracts.js"; import { createExtensionKernel, type ExtensionKernel } from "../extensions.js"; export interface ExtensionConformanceOptions { /** * Secret strings that must be redacted from any setup-error event under the * default `errorPolicy: "event"`. When omitted, error redaction is not * asserted. Ignored under `expectThrow`. */ readonly secrets?: readonly string[]; /** * When true, asserts that a thrown setup error is rethrown to the caller * (the `errorPolicy: "throw"` opt-in). Use this to confirm the host's throw * policy surfaces setup failures instead of isolating them. */ readonly expectThrow?: boolean; } /** * Assert that an `Extension` satisfies the core adapter contract: `setup` runs * on load, registered contributions land in the inert contribution registries, * and (when a `secrets` list is provided) a failing setup emits a redacted * `extension_error` event under the default event policy, or rethrows under * `expectThrow`. Throws on the first violation; returns the loaded kernel so * the caller can inspect registered contributions. */ export declare function assertExtensionConforms(extension: Extension, options?: ExtensionConformanceOptions): Promise; export { createExtensionKernel };