/** * Variable resolver - resolves $ARG_*, $STAGE_*, $CONTEXT_* placeholders */ export interface VariableContext { args: Record; context: Record; env?: Record; stages: Record>; } export type VariableScope = 'ARG' | 'CONTEXT' | 'ENV' | 'STAGE'; export declare class VariableResolver { private context; private strict; constructor(context: VariableContext, strict?: boolean); /** * Resolve all variables in a value (string, object, or array) */ resolve(value: T): T; /** * Resolve variables in a string */ private resolveString; /** * Resolve variables in an object */ private resolveObject; /** * Resolve a single variable */ resolveVariable(scope: VariableScope, path: string): unknown; /** * Resolve argument variable ($ARG_name) */ private resolveArg; /** * Resolve nested path in an object */ private resolvePath; /** * Resolve stage variable ($STAGE_stageName.outputName) * Returns null for missing stages (e.g., skipped due to conditional) */ private resolveStage; /** * Resolve context variable ($CONTEXT_key) */ private resolveContext; /** * Resolve environment variable ($ENV_NAME) */ private resolveEnv; /** * Convert value to string for replacement */ private valueToString; /** * Update context with new values */ updateContext(updates: Partial): void; /** * Add stage outputs to context */ addStageOutputs(stageName: string, outputs: Record): void; /** * Get current context */ getContext(): VariableContext; /** * Extract variable references from a string */ static extractVariables(str: string): Array<{ full: string; path: string; scope: string; }>; /** * Check if a string contains any variables */ static hasVariables(str: string): boolean; /** * Validate that all required variables can be resolved */ validateVariables(value: unknown): string[]; } //# sourceMappingURL=variables.d.ts.map