import type { PaseoInstallResult, PaseoRemoveResult, SetupCheckResult } from "./result-types"; import type { PaseoSetupDependencies } from "./setup-deps"; export interface PaseoSetupFlags { readonly check?: boolean; readonly json?: boolean; readonly force?: boolean; readonly remove?: boolean; readonly mpreset?: string; } export declare class PaseoSetupUsageError extends Error { constructor(message: string); } export type PaseoSetupOutcome = { readonly kind: "check"; readonly result: SetupCheckResult; } | { readonly kind: "install"; readonly result: PaseoInstallResult; } | { readonly kind: "remove"; readonly result: PaseoRemoveResult; }; /** * Reject flag combinations that have no coherent meaning. * * Rejected before any read or write so a misuse can never leave partial state. */ export declare function assertUsableFlags(flags: PaseoSetupFlags): void; export declare function runPaseoSetup(flags: PaseoSetupFlags, deps: PaseoSetupDependencies): Promise;