import type { Context } from '../context/context.js'; import type { ConfigurationValue } from '../configuration/configuration-value.js'; import { ConfigurationManager } from '../configuration/configuration-manager.js'; import type { Result } from '../result/result.js'; import { type ResultStatusValue } from '../result/result.js'; import type { NodeCode, NodeCodeCategoryValue } from './node-code.js'; /** * Base class for all NodeCode implementations. * Replaces PHP traits (NodeCodeMetaTrait, ResultsTrait, ConfigurationTrait, etc.) */ export declare abstract class AbstractNodeCode implements NodeCode { readonly key: string; readonly name: string; readonly description: string; readonly categoryKey: NodeCodeCategoryValue; protected configManager: ConfigurationManager; constructor(key: string, name: string, description: string, categoryKey: NodeCodeCategoryValue); addConfiguration(values: ConfigurationValue[]): void; /** Helper: create a Result */ protected result(status: ResultStatusValue, message?: string): Result; /** Helper: get a required config value, throw if missing */ protected getRequiredConfigValue(key: string, fallback?: unknown): unknown; /** Helper: get an optional config value */ protected getOptionalConfigValue(key: string, fallback?: unknown): unknown; /** * Replace {key} and {key|pipe} tokens in a template with context values. * * Simple: {title} → context.get('title') * Piped: {title|date} → extract YYYY-MM-DD from title * {title|after:—} → everything after "—" * {title|regex:(\d{4}-\d{2}-\d{2})} → first capture group * * Multiple pipes can be chained: {title|after:—|trim|date} */ protected interpolate(template: string, context: Context): string; abstract process(context: Context): Promise; } //# sourceMappingURL=abstract-node-code.d.ts.map