import type { RuntimeVersion } from '../../schema';
import type { PackageOptions } from './types/packaging';
/**
 * Check if the runtime version is a Python runtime.
 */
export declare function isPythonRuntime(runtimeVersion: RuntimeVersion): boolean;
/**
 * Check if the runtime version is a Node/TypeScript runtime.
 */
export declare function isNodeRuntime(runtimeVersion: RuntimeVersion): boolean;
interface ResolvedPaths {
    projectRoot: string;
    srcDir: string;
    pyprojectPath: string;
    artifactDir: string;
    buildDir: string;
    stagingDir: string;
    artifactsDir: string;
}
export declare const MAX_ZIP_SIZE_BYTES: number;
/**
 * Resolve CodeLocation path relative to repository root
 * @param codeLocation Path from AgentEnvSpec.Runtime.CodeLocation
 * @param configBaseDir Path to agentcore directory
 * @returns Absolute path to code location
 */
export declare function resolveCodeLocation(codeLocation: string, configBaseDir: string): string;
export declare function resolveProjectPaths(options?: PackageOptions, agentName?: string): Promise<ResolvedPaths>;
export declare function ensureDirClean(dir: string): Promise<void>;
export declare function copySourceTree(srcDir: string, destination: string): Promise<void>;
export declare function ensureBinaryAvailable(binary: string, installHint?: string): Promise<void>;
export declare function runCommand(command: string, args: string[], cwd?: string): Promise<void>;
export declare function createZipFromDir(sourceDir: string, outputZip: string): Promise<void>;
export declare function enforceZipSizeLimit(zipPath: string): Promise<number>;
export declare function resolveProjectPathsSync(options?: PackageOptions, agentName?: string): ResolvedPaths;
/**
 * Resolve filesystem paths for a Node.js/TypeScript agent project during packaging.
 *
 * Locates the nearest package.json (equivalent of pyproject.toml for Python agents),
 * then derives:
 * - projectRoot: directory containing package.json
 * - srcDir: source directory (defaults to projectRoot)
 * - artifactDir: where CDK config and build outputs live (agentcore/ directory)
 * - buildDir/stagingDir: per-agent temp directories used during CodeZip packaging
 *
 * Note: `pyprojectPath` in the return type is reused from the Python ResolvedPaths
 * interface — for Node projects it points to package.json.
 */
export declare function resolveNodeProjectPaths(options?: PackageOptions, agentName?: string): Promise<ResolvedPaths>;
/** Synchronous version of resolveNodeProjectPaths — used in contexts where async is not available. */
export declare function resolveNodeProjectPathsSync(options?: PackageOptions, agentName?: string): ResolvedPaths;
export declare function ensureDirCleanSync(dir: string): void;
export declare function copySourceTreeSync(srcDir: string, destination: string): void;
export declare function ensureBinaryAvailableSync(binary: string, installHint?: string): void;
export declare function createZipFromDirSync(sourceDir: string, outputZip: string): void;
export declare function enforceZipSizeLimitSync(zipPath: string): number;
/**
 * Prepares console scripts for Linux deployment by:
 * - On Windows: Converting .exe files to Linux shell scripts
 * - On macOS/Linux: Rewriting hardcoded shebang paths to portable ones
 *
 * @param stagingDir The directory containing installed Python packages
 */
export declare function convertWindowsScriptsToLinux(stagingDir: string): Promise<void>;
/**
 * Synchronous version of convertWindowsScriptsToLinux.
 */
export declare function convertWindowsScriptsToLinuxSync(stagingDir: string): void;
export {};
//# sourceMappingURL=helpers.d.ts.map