import type { FileSystem, Path } from "effect"; import { Layer } from "effect"; import type { LoadedCliConfig, LoadCliConfigOptions, SaveCliConfigOptions } from "./config-document.ts"; import type { FunctionsManifest } from "./functions-manifest-model.ts"; import type { CliProjectPaths } from "./paths.ts"; import type { LoadCliProjectEnvironmentOptions, CliProjectEnvironment } from "./project.ts"; /** * A rejection from `loadCliConfig`, `loadCliConfigFile`, or `saveCliConfig` carries one of * `CliConfigParseError`, `DuplicateRemoteProjectIdError`, `InvalidRemoteProjectIdError`, * `CliProjectEnvParseError`, or a `PlatformError` for a host/OS failure — check with * `instanceof`. */ export interface CliConfigIo { readonly loadCliConfig: (cwd: string, options?: LoadCliConfigOptions) => Promise; readonly findCliProjectRoot: (cwd: string) => Promise; readonly findCliProjectPaths: (cwd: string) => Promise; readonly loadCliConfigFile: (path: string) => Promise; readonly loadCliProjectEnvironment: (options: LoadCliProjectEnvironmentOptions) => Promise; readonly saveCliConfig: (options: SaveCliConfigOptions) => Promise; readonly inferFunctionsManifest: (cwd: string) => Promise; } /** * Builds the Promise-based `@supabase/config/io` facade over a given platform layer. * Accepts any layer providing a superset of `FileSystem | Path` (e.g. `BunServices.layer` * or `NodeServices.layer`). */ export declare function makeCliConfigIo(platformLayer: Layer.Layer): CliConfigIo; //# sourceMappingURL=promise-facade.d.ts.map