import type { GthConfig } from '#src/config.js';
/**
 * Checks if .gsloth directory exists in the project root
 * @returns Boolean indicating whether .gsloth directory exists
 */
export declare function gslothDirExists(): boolean;
/**
 * Gets the path where gsloth should write files based on .gsloth directory existence
 * @param filename The filename to append to the path
 * @returns The resolved path where the file should be written
 */
export declare function getGslothFilePath(filename: string): string;
/**
 * Gets the path where gsloth should write configuration files based on .gsloth directory existence.
 * The main difference from {@link #getGslothConfigReadPath} is that this getGslothConfigWritePath
 * method creates internal settings directory if it does not exist.
 *
 * If .gsloth dir exists returns `projectdir/.gsloth/.gsloth-settings`
 * If .gsloth dir does not exist returns `projectdir`
 *
 * @param filename The configuration filename
 * @returns The resolved path where the configuration file should be written
 */
export declare function getGslothConfigWritePath(filename: string): string;
/**
 * Gets the path where gsloth should look for configuration files based on .gsloth directory existence
 * @param filename The configuration filename to look for
 * @returns The resolved path where the configuration file should be found
 */
export declare function getGslothConfigReadPath(filename: string): string;
/**
 * Resolve an explicit output path string to an absolute file path.
 * Concerned only with string values:
 * - If the string includes a path separator, resolve relative to project root and ensure parent directories exist.
 * - If it's a bare filename, place it under .gsloth/ when present, otherwise project root.
 */
export declare function resolveOutputPath(writeOutputToFile: string): string;
/**
 * Returns the output file path for a given command execution based on configuration.
 * - If writeOutputToFile is false, returns null.
 * - If writeOutputToFile is a string, resolves it without generating a default filename.
 * - If writeOutputToFile is true, generates a standard filename from source and resolves it under .gsloth/ (when present) or project root.
 */
export declare function getCommandOutputFilePath(config: GthConfig, source: string): string | null;
