import { ExtensionOptions, PropertyMapper, DataLoader } from '../../core';
import { IConfigBeanModel, RegionInfoModel } from '../models';
import { TroubleResponse } from '../models/trouble/services';
export type TroubleRankMapper = PropertyMapper<TroubleResponse, number, any>;
export type TroubleColorMapper = PropertyMapper<TroubleResponse, string, any>;
export type TroubleRoleMapper = PropertyMapper<TroubleResponse, string, any>;
export type RegionServicePathMapper = PropertyMapper<RegionInfoModel, string, any>;
export type ConfigServicePathMapper = PropertyMapper<IConfigBeanModel, string, any>;
export declare class CoreExtensionManager {
    /**
     * Maps the rank property of the trouble into the {@link TroubleModel}.
     *
     * @param troubleRankMapper - Mapping function that derives a numeric rank from a {@link TroubleResponse}
     * @param options - Optional {@link ExtensionOptions} to control failure behavior.
     *   Defaults to `failurePolicy: "throw"`, which throws an {@link ExtensionException} on mapper failure.
     *   Set to `"continue"` to log the error and return a fallback value instead.
     * @returns this instance for chaining
     * */
    registerTroubleRankMapper(troubleRankMapper: TroubleRankMapper, options?: ExtensionOptions): this;
    /**
     * Maps the role property of the trouble into the {@link TroubleModel}.
     *
     * @param troubleRoleMapper - Mapping function that derives a role string from a {@link TroubleResponse}
     * @param options - Optional {@link ExtensionOptions} to control failure behavior.
     *   Defaults to `failurePolicy: "throw"`, which throws an {@link ExtensionException} on mapper failure.
     *   Set to `"continue"` to log the error and return a fallback value instead.
     * @returns this instance for chaining
     * */
    registerTroubleRoleMapper(troubleRoleMapper: TroubleRoleMapper, options?: ExtensionOptions): this;
    /**
     * Maps the color property of the trouble into the {@link TroubleModel}.
     *
     * @param troubleColorMapper - Mapping function that derives a color string from a {@link TroubleResponse}
     * @param options - Optional {@link ExtensionOptions} to control failure behavior.
     *   Defaults to `failurePolicy: "throw"`, which throws an {@link ExtensionException} on mapper failure.
     *   Set to `"continue"` to log the error and return a fallback value instead.
     * @returns this instance for chaining
     * */
    registerTroubleColorMapper(troubleColorMapper: TroubleColorMapper, options?: ExtensionOptions): this;
    /**
     * Registers a data loader for a given model id. The loader is invoked during model
     * initialization to fetch data that is provided as context to associated mappers.
     *
     * @param id - The model identifier to associate the loader with
     * @param loader - Async function that loads and returns data for the model
     * @param options - Optional {@link ExtensionOptions} to control failure behavior.
     *   Defaults to `failurePolicy: "throw"`, which throws an {@link ExtensionException} on loader failure.
     *   Set to `"continue"` to log the error and return `undefined` instead.
     */
    registerModelLoader(id: string, loader: DataLoader, options?: ExtensionOptions): void;
    registerRegionServicePathMapper(regionServicePathMapper: RegionServicePathMapper): this;
    /**
     * Registers a data loader for the {@link CanvasDispatcher} pattern data.
     *
     * @param loader - Async function that loads canvas pattern data
     * @param options - Optional {@link ExtensionOptions} to control failure behavior.
     *   Defaults to `failurePolicy: "throw"`, which throws an {@link ExtensionException} on loader failure.
     *   Set to `"continue"` to log the error and return `undefined` instead.
     */
    registerCanvasPatternLoader(loader: DataLoader, options?: ExtensionOptions): void;
    registerConfigServicePathMapper(configServicePathMapper: ConfigServicePathMapper): this;
}
//# sourceMappingURL=extension-manager.d.ts.map