import { registerMapper, unregisterMapper, listMappers } from "../mappers/index.js"; import { engine as loweringEngine } from "../lowering/engine.js"; import { emitterEngine } from "../emit/engine.js"; import { registerTargetEmitter } from "../emit/registry.js"; import * as frontendRegistry from "../emit/frontend/registry.js"; import { ValidatorFn } from "../dsl/validator-registry.js"; import { TemplateDefinition } from "../cli/template-registry.js"; import { Logger } from "../utils/logger.js"; export type ExtensionContext = { registerMapper: typeof registerMapper; unregisterMapper: typeof unregisterMapper; listMappers: typeof listMappers; registerTransform: typeof loweringEngine.registerTransform; registerPolicySchema: typeof loweringEngine.registerPolicySchema; registerEmitter: typeof emitterEngine.registerEmitter; registerTargetEmitter: typeof registerTargetEmitter; registerAuthStrategy: typeof frontendRegistry.authStrategies.register; registerCsrfStrategy: typeof frontendRegistry.csrfStrategies.register; registerEnvelopeAdapter: typeof frontendRegistry.envelopeAdapters.register; registerPaginationAdapter: typeof frontendRegistry.paginationAdapters.register; registerUIComponent: typeof frontendRegistry.uiComponents.register; registerValidator: (id: string, fn: ValidatorFn) => void; registerTemplate: (template: TemplateDefinition) => void; logger: Logger; namespace: (ns: string) => ExtensionContext; root: ExtensionContext; }; export declare function createExtensionContext(): ExtensionContext; export type { MapperFn } from "../types/extension.js";