export type Config = { package?: { name: string; version: string; description?: string; license?: string; repository?: string; keywords?: string[]; baseDir?: string; readme?: string; files?: string[]; homepage?: string; documentation?: string; moc?: string; donation?: string; }; dependencies?: Dependencies; "dev-dependencies"?: Dependencies; toolchain?: Toolchain; requirements?: Requirements; moc?: { args?: string[]; }; canisters?: Record; build?: { outputDir?: string; args?: string[]; "check-wasm"?: boolean; "check-deploy"?: boolean; }; deployed?: { dir?: string; }; lint?: { args?: string[]; rules?: string[]; extends?: string[] | true; extra?: Record; }; /** Post-build Wasm optimization via Binaryen wasm-opt. Section present (even empty) enables it. */ optimize?: { level?: string; "keep-names"?: boolean; args?: string[]; }; }; export type MigrationsConfig = { chain: string; next?: string; "check-limit"?: number; "build-limit"?: number; }; export type CanisterConfig = { main?: string; args?: string[]; candid?: string; initArg?: string; wasmMemoryLimit?: number; "check-stable"?: { path: string; /** @deprecated Create the file with an empty actor instead. */ skipIfMissing?: boolean; }; migrations?: MigrationsConfig; }; export type Dependencies = Record; export type Dependency = { name: string; version?: string; repo?: string; path?: string; }; export type Toolchain = { moc?: string; wasmtime?: string; "pocket-ic"?: string; lintoko?: string; "wasm-opt"?: string; }; export type Tool = "moc" | "wasmtime" | "pocket-ic" | "lintoko" | "wasm-opt"; export type Requirements = { moc?: string; lintoko?: string; }; export type TestMode = "interpreter" | "wasi" | "replica";