import * as p from "@clack/prompts";
import * as Effect from "effect/Effect";
declare const PromptCancelled_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
readonly _tag: "PromptCancelled";
} & Readonly;
export declare class PromptCancelled extends PromptCancelled_base {
}
export declare const retryIfCancelled: (self: Effect.Effect) => Effect.Effect;
/**
* Wraps a clack prompt (which returns a `Promise` where the
* symbol indicates user cancellation) in an Effect.
*
* Returns `undefined` if the user cancels (Ctrl+C / Escape).
*
* Uses `Effect.callback` so fiber interruption propagates to the clack
* prompt through its abort signal, releasing stdin and restoring the cursor.
*/
export declare const prompt: (fn: (signal: AbortSignal) => Promise) => Effect.Effect;
export declare const success: (str: string) => Effect.Effect;
export declare const warn: (str: string) => Effect.Effect;
export declare const error: (str: string) => Effect.Effect;
export declare const info: (str: string) => Effect.Effect;
type TextOptions = Omit & {
validate?: (value: string) => string | Error | undefined;
};
type PasswordOptions = Omit & {
validate?: (value: string) => string | Error | undefined;
};
export declare const text: (opts: TextOptions) => Effect.Effect;
export declare const password: (opts: PasswordOptions) => Effect.Effect;
export declare const select: (opts: p.SelectOptions) => Effect.Effect;
export declare const confirm: (opts: p.ConfirmOptions) => Effect.Effect;
export declare const multiselect: (opts: p.MultiSelectOptions) => Effect.Effect;
/**
* Open a URL in the user's default browser.
*
* On Windows, uses rundll32's FileProtocolHandler — a built-in shim that
* opens URLs in the default browser. It accepts the URL as a direct
* argument (no shell, no quoting of `&`). cmd.exe `start` would treat
* `&` in OAuth URLs as a command separator, and `explorer.exe` treats
* its arg as a path.
*/
export declare const openUrl: (url: string) => Effect.Effect;
export {};
//# sourceMappingURL=Clank.d.ts.map