import { type ImporterService, type LogService } from 'common-services';
import { type WhookTransformerModule, type WhookTransformerDefinition } from '../types/transformers.js';
import { type WhookResolvedPluginsService, type WhookPluginName } from './WHOOK_RESOLVED_PLUGINS.js';
import { type WhookMain } from '../types/base.js';
export declare const DEFAULT_TRANSFORMERS_DEFINITIONS_OPTIONS: WhookTransformerDefinitionsOptions;
export declare const DEFAULT_TRANSFORMER_DEFINITION_FILTER: WhookTransformerDefinitionFilter;
export type WhookTransformerDefinitionFilter = (definition: WhookTransformerDefinition) => boolean;
export interface WhookTransformerDefinitionsOptions {
    /** File patterns to ignore */
    ignoredFilePatterns?: string[];
    /** Pattern to match and pick the transformer name in the file name */
    fileNamePatterns: [string, ...string[]];
    /** Patterns that matches an transformer name */
    serviceNamePatterns: [string, ...string[]];
}
export interface WhookTransformersDefinitionsConfig {
    TRANSFORMERS_DEFINITIONS_OPTIONS?: WhookTransformerDefinitionsOptions;
    TRANSFORMER_DEFINITION_FILTER?: WhookTransformerDefinitionFilter;
    WHOOK_PLUGINS?: WhookPluginName[];
}
export type WhookTransformersDefinitionsDependencies = WhookTransformersDefinitionsConfig & {
    APP_ENV: WhookMain['AppEnv'];
    WHOOK_RESOLVED_PLUGINS: WhookResolvedPluginsService;
    log?: LogService;
    importer: ImporterService<WhookTransformerModule>;
    readDir?: (path: URL) => Promise<string[]>;
};
export type WhookTransformersDefinitionsService = Record<string, {
    url: string;
    name: string;
    pluginName: WhookPluginName;
    module: WhookTransformerModule;
}>;
declare const _default: import("knifecycle").ServiceInitializer<WhookTransformersDefinitionsDependencies, WhookTransformersDefinitionsService>;
export default _default;
