/**
 * Configuration engine for CLEO V2.
 *
 * Resolution priority: CLI flags > Environment vars > Project config > Global config > Defaults
 *
 * @epic T4454
 * @task T4458
 * @task T067
 */
import type { CleoConfig, ResolvedValue } from '@cleocode/contracts';
/**
 * Load and merge configuration from all sources.
 * Priority: defaults < global config < project config < environment vars
 */
export declare function loadConfig(cwd?: string): Promise<CleoConfig>;
/**
 * Get a single config value with source tracking.
 * Returns the value and which source it came from.
 */
export declare function getConfigValue<T>(path: string, cwd?: string): Promise<ResolvedValue<T>>;
/**
 * Get a raw config value from the project config file only (no cascade).
 * Returns undefined if the key is not found.
 * Used by the engine layer for simple key lookups without source tracking.
 * @task T4789
 */
export declare function getRawConfigValue(key: string, cwd?: string): Promise<unknown>;
/**
 * Get the full raw project config (no cascade).
 * Returns null if no config file exists.
 * @task T4789
 */
export declare function getRawConfig(cwd?: string): Promise<Record<string, unknown> | null>;
/**
 * Parse a string value into its appropriate JS type.
 * Handles booleans, null, integers, floats, and JSON.
 * @task T4789
 */
export declare function parseConfigValue(value: unknown): unknown;
/**
 * Set a config value in the project or global config file (dot-notation supported).
 * Creates intermediate objects as needed. Parses string values into
 * appropriate types (boolean, number, null, JSON).
 * @task T4789
 * @task T4795
 */
export declare function setConfigValue(key: string, value: unknown, cwd?: string, opts?: {
    global?: boolean;
}): Promise<{
    key: string;
    value: unknown;
    scope: 'project' | 'global';
}>;
/** Valid preset names. */
export type StrictnessPreset = 'strict' | 'standard' | 'minimal';
/** A preset definition: the config keys it sets and a human description. */
export interface PresetDefinition {
    /** Short summary of what this preset enforces. */
    description: string;
    /** Flat dot-notation key/value pairs applied to project config. */
    values: Record<string, unknown>;
}
/**
 * All three strictness presets.
 *
 * strict   — block on missing AC, require sessions, enforce lifecycle pipeline
 * standard — warn on missing AC, optional sessions, advisory pipeline
 * minimal  — no AC checking, no session requirement, lifecycle off
 */
export declare const STRICTNESS_PRESETS: Record<StrictnessPreset, PresetDefinition>;
/** Result of applying a preset. */
export interface ApplyPresetResult {
    preset: StrictnessPreset;
    description: string;
    applied: Record<string, unknown>;
    scope: 'project' | 'global';
}
/**
 * Apply a strictness preset to the project (or global) config.
 * Merges preset values over existing config — keys not covered by the preset
 * are preserved unchanged.
 * Idempotent: applying the same preset twice yields the same config.
 *
 * @task T067
 */
export declare function applyStrictnessPreset(preset: StrictnessPreset, cwd?: string, opts?: {
    global?: boolean;
}): Promise<ApplyPresetResult>;
/**
 * List all available presets with their descriptions and values.
 * Used by the CLI help output.
 *
 * @task T067
 */
export declare function listStrictnessPresets(): Array<{
    name: StrictnessPreset;
    description: string;
    values: Record<string, unknown>;
}>;
//# sourceMappingURL=config.d.ts.map