import type { AddressInfo } from 'node:net';
import type { CliOptions, Manifest, Subprocess } from '@stacksjs/types';
import type { NpmScript } from '@stacksjs/enums';

export declare function packageManager(): Promise<string>;
export declare function initProject(): Promise<Result<Subprocess, Error>>;
export declare function ensureProjectIsInitialized(): Promise<boolean>;
export declare function installIfVersionMismatch(): Promise<void>;
export declare function frameworkVersion(): Promise<string>;
export declare function isAppKeySet(): Promise<boolean>;
export declare function determineResetPreset(preset?: string): string[];
export declare function isManifest(obj: any): obj is Manifest;
export declare function isOptionalString(value: any): value is string | undefined;
export declare function setEnvValue(key: string, value: string): Promise<void>;
export declare function runNpmScript(script: NpmScript, options?: CliOptions): Promise<Result<Subprocess, Error>>;
export declare function hasScript(manifest: Manifest, script: NpmScript): boolean;
export declare function parseYaml(content: any): any;
export declare function determineDebugLevel(options?: CliOptions): boolean;
export declare function isIpv6(address: AddressInfo): boolean;

export { dump as dumpYaml, load as loadYaml } from 'js-yaml'