import { Pathy } from '@bscotch/pathy'; import { GameMakerDefaultMacros, GameMakerInstalledVersion, GameMakerLogOptions } from './GameMakerLauncher.types.js'; import { StitchSupportedBuilder } from './GameMakerRuntime.types.js'; import { Debugger } from '@bscotch/utility/browser'; import { z } from 'zod'; export declare const debug: Debugger; export declare const trace: import("@bscotch/utility/browser").Decorator; export type RuntimeFeedsFile = z.infer; export declare const runtimeFeedsFileSchema: z.ZodArray>; export declare function createStaticTracer(className: string, methodName: string): Debugger; export declare const bootstrapRuntimeVersion = "2022.300.0.476"; export declare const stitchConfigDir: Pathy; export declare const currentOs: string | undefined; export declare const currentArchitecture: NodeJS.Architecture; export declare function artifactExtensionForPlatform(platform: StitchSupportedBuilder): string; /** * Given a .yyp filepath, or a directory that should * contain one, return the containing directory only. */ export declare function projectFolder(projectPath: string | Pathy): Pathy; export declare function projectLogDirectory(project?: string | Pathy, options?: GameMakerLogOptions): Promise>; /** * Sorts *in place*, descending (most recent date first). */ export declare function sortByDateField>(entries: T[], dateField: F): T[]; export declare function downloadIfCacheExpired(url: string, filePath: Pathy, maxAgeInSeconds: number, logger?: Logger): Promise; export declare function cachedFileIsExpired(filePath: Pathy, maxAgeInSeconds: number): Promise; /** * Given a version string, ensure it has the correct * format for use by this package (4 dot-separated * numbers, without a leading 'v'). */ export declare function cleanVersionString(version: string): string; export declare function download(url: string, to: Pathy, options?: { force: boolean; }): Promise; export declare function runIdeInstaller(idePath: Pathy): Promise; /** * Find the paths to all installed runtime versions. * Uses discovery plus some basic heuristics and smoke * tests to return paths that are likely to correspond * with valid runtime installations. * * These are stored in `$PROGRAMDATA/GameMakerStudio2(-(Beta|LTS))?/Cache/runtimes/*` */ export declare function listInstalledRuntimes(options?: { logger?: Logger; }): Promise[]>; /** * Set the active runtime by updating GameMaker's * program data files. This sets the active runtime * for *all* installed IDEs! */ export declare function setActiveRuntime(runtime: { version: string; directory: Pathy; }): Promise; /** * Note that these paths are not populated by * default, so they may point to non-existent files. */ export declare function listDefaultMacrosPaths(): Promise[]>; export declare function listRuntimeFeedsConfigPaths(): Promise[]>; /** * Find GameMaker's program data caches. These store * installed Runtimes, current IDE configuration info, * and other data. * * These currently correspond with * `$PROGRAMDATA/GameMakerStudio2(-(Beta|LTS))?/` */ export declare function listGameMakerDataDirs(): Promise; export declare function listInstalledIdes(parentDir?: string | Pathy): Promise[]>; export type Logger = { warn: (...args: any[]) => void; log: (...args: any[]) => void; }; //# sourceMappingURL=utility.d.ts.map