/**
 * File status returned by project configuration bootstrapping helpers.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export type ProjectInitializationStatus = 'created' | 'updated' | 'unchanged';
/**
 * Minimal environment variable descriptor used for additive `.env` initialization.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export type ProjectEnvVariableDefinition = {
    readonly name: string;
};
/**
 * Result of one additive `.env` initialization attempt.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export type EnsureProjectEnvFileResult = {
    readonly envFileStatus: ProjectInitializationStatus;
    readonly initializedEnvVariableNames: ReadonlyArray<string>;
};
/**
 * Options required to append missing variables into a project `.env`.
 */
type EnsureProjectEnvFileOptions<TEnvVariable extends ProjectEnvVariableDefinition> = {
    readonly projectPath: string;
    readonly emptyFileContent: string;
    readonly envVariables: ReadonlyArray<TEnvVariable>;
    readonly buildMissingEnvVariablesBlock: (envVariables: ReadonlyArray<TEnvVariable>) => string;
};
/**
 * Options required to append missing rules into a project `.gitignore`.
 */
type EnsureProjectGitignoreFileOptions = {
    readonly projectPath: string;
    readonly blockHeader: string;
    readonly rules: ReadonlyArray<string>;
};
/**
 * Ensures `.env` exists and appends only still-missing variable definitions.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export declare function ensureProjectEnvFile<TEnvVariable extends ProjectEnvVariableDefinition>({ projectPath, emptyFileContent, envVariables, buildMissingEnvVariablesBlock, }: EnsureProjectEnvFileOptions<TEnvVariable>): Promise<EnsureProjectEnvFileResult>;
/**
 * Ensures `.gitignore` contains all required project initialization rules.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export declare function ensureProjectGitignoreFile({ projectPath, blockHeader, rules, }: EnsureProjectGitignoreFileOptions): Promise<ProjectInitializationStatus>;
/**
 * Reads one text file when it exists, otherwise returns `undefined`.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export declare function readTextFileIfExists(path: string): Promise<string | undefined>;
/**
 * Appends one text block to existing file content while preserving readable newlines.
 *
 * @private internal utility of Promptbook CLI project initialization
 */
export declare function appendBlock(currentContent: string, blockToAppend: string): string;
export {};
