import type { Extension, ExtensionRuntime } from "./types.ts"; type Callback = (...args: never[]) => unknown; /** Inspection returns the authored callback; hosts invoke its owned registration separately. */ export declare function originalRegistrationCallback(callback: T): T; interface Invocation { runtimes: Map; extensions: Map; callbacks: Map; } export declare function resolveInvocationRuntime(runtime: ExtensionRuntime): ExtensionRuntime; export declare function invocationRuntime(runtime: ExtensionRuntime): ExtensionRuntime; export declare function invocationExtension(extension: Extension): Extension; /** Snapshot registration containers, retaining opaque values and function identities. */ export declare function copyRegistrations(value: T, functions?: (fn: Callback) => Callback): T; export declare const registrationFields: readonly ["handlers", "tools", "commands", "flags", "shortcuts", "messageRenderers", "toolRenderers", "entryRenderers", "markdownTransformer"]; export declare function prepareRegistrationCallbacks(extension: Extension): void; export declare function createInvocationBindings(sourceRuntime: ExtensionRuntime, runtime: ExtensionRuntime): Invocation; /** Three-way registration merge: replay unchanged factory state, preserve every caller edit. */ export declare function reconcileRegistration(source: unknown, baseline: unknown, fresh: unknown, bindings: Invocation): unknown; export declare function bindRegistrationCallbacks(extension: Extension, bindings: Invocation): void; /** Registrations made by copied APIs retain the registering invocation after it returns. */ export declare function captureRegistrationInvocation(value: T, sourceRuntime: ExtensionRuntime): T; export {}; //# sourceMappingURL=loader-bindings.d.ts.map