import type { PlanuConfig, WorkMode } from '../types/index.js';
/**
 * Create a new PlanuConfig with defaults. Always uses modern spec location.
 * SPEC-313: Accepts optional workMode to embed in the generated config.
 */
export declare function createPlanuConfig(workMode?: WorkMode): PlanuConfig;
/**
 * SPEC-313: Read planu.json, update workMode, and write back.
 * Accepts injected readFile/writeFile to keep this function pure/testable.
 */
export declare function updatePlanuConfigWorkMode(planuConfigPath: string, workMode: WorkMode, readFile: (path: string, enc: 'utf-8') => Promise<string>, writeFile: (path: string, data: string, enc: 'utf-8') => Promise<void>): Promise<void>;
/**
 * SPEC-313: Read and parse planu.json to retrieve its config (best-effort).
 * Returns null if the file is absent or malformed.
 */
export declare function readPlanuConfig(planuConfigPath: string, readFile: (path: string, enc: 'utf-8') => Promise<string>): Promise<PlanuConfig | null>;
/**
 * Serialize PlanuConfig to JSON string.
 */
export declare function serializePlanuConfig(config: PlanuConfig): string;
/**
 * Determine spec file names based on naming convention.
 */
export declare function getSpecFileNames(naming: 'modern' | 'legacy'): {
    spec: string;
    technical: string;
    progress: string;
};
/**
 * Check if a specLocation uses legacy naming.
 */
export declare function isLegacyLocation(specLocation: string): boolean;
//# sourceMappingURL=planu-config-writer.d.ts.map