/** * @license * Copyright 2025 Steven Roussey * SPDX-License-Identifier: Apache-2.0 */ import type { ServiceRegistry } from "./ServiceRegistry"; /** * A resolver function that converts a string ID to an instance. * Returns undefined if the resolver cannot handle this format. * Throws an error if the ID is not found. * * @param id The string ID to resolve * @param format The full format string (e.g., "model:TextEmbedding", "storage:tabular") * @param registry The service registry to use for lookups */ export type InputResolverFn = (id: string, format: string, registry: ServiceRegistry) => unknown | Promise; /** * Service token for the input resolver registry. * Maps format prefixes to resolver functions. */ export declare const INPUT_RESOLVERS: import("./ServiceRegistry").ServiceToken>; /** * Registers an empty resolver map on the given registry if absent. * Called as part of `bootstrapWorkglow` / `createOrchestrationContext`. */ export declare function registerInputResolverDefaults(registry?: ServiceRegistry): void; /** * Gets the input resolver registry from the given registry (defaults to global). */ export declare function getInputResolvers(registry?: ServiceRegistry): Map; /** * Registers an input resolver for a format prefix. * The resolver will be called for any format that starts with this prefix. * * @param formatPrefix The format prefix to match (e.g., "model", "dataset") * @param resolver The resolver function * * @example * ```typescript * // Register model resolver * registerInputResolver("model", async (id, format, registry) => { * const modelRepo = registry.get(MODEL_REPOSITORY); * const model = await modelRepo.findByName(id); * if (!model) throw new Error(`Model "${id}" not found`); * return model; * }); * * // Register dataset resolver * registerInputResolver("dataset", (id, format, registry) => { * const datasetType = format.split(":")[1]; // "tabular", "vector", etc. * if (datasetType === "tabular") { * const datasets = registry.get(TABULAR_DATASETS); * const dataset = datasets.get(id); * if (!dataset) throw new Error(`Dataset "${id}" not found`); * return dataset; * } * throw new Error(`Unknown dataset type: ${datasetType}`); * }); * ``` */ export declare function registerInputResolver(formatPrefix: string, resolver: InputResolverFn, registry?: ServiceRegistry): void; //# sourceMappingURL=InputResolverRegistry.d.ts.map