/** Options for {@link useRevealSecretValue}. */
export interface UseRevealSecretValueOptions {
    /**
     * Milliseconds after which the revealed value is automatically cleared
     * from component state. Prevents sensitive values from lingering in memory.
     *
     * - Default: `30_000` (30 seconds) — enough time to copy a value.
     * - Set to `0` to disable auto-clear (caller is responsible for clearing).
     */
    readonly autoClearMs?: number;
}
/** Return value of {@link useRevealSecretValue}. */
export interface UseRevealSecretValueReturn {
    /**
     * Fetch and reveal a single secret value from an environment.
     * Replaces any previously revealed value. Resets error state.
     *
     * @param environmentId - The environment resource ID.
     * @param key - The key within `spec.data` to reveal.
     */
    readonly reveal: (environmentId: string, key: string) => Promise<void>;
    /** The decrypted value, or `null` when not yet revealed or cleared. */
    readonly revealedValue: string | null;
    /** `true` while the reveal request is in-flight. */
    readonly isRevealing: boolean;
    /** Error message from the last failed reveal attempt, or `null`. */
    readonly error: Error | null;
    /** Immediately clear the revealed value and cancel any pending auto-clear timer. */
    readonly clearRevealedValue: () => void;
}
/**
 * Behavior hook that encapsulates the "reveal secret" interaction.
 *
 * Fetches a single unredacted secret value via
 * `stigmer.environment.getSecretValue()`, holds the decrypted value in
 * state, and auto-clears it after a configurable timeout.
 *
 * This is an **imperative** hook (call `reveal()` on user action),
 * not a declarative data hook (no auto-fetch on mount). It pairs with
 * a "reveal" / "show" button in the UI — the canonical pattern for
 * sensitive credential display (AWS, GitHub, 1Password).
 *
 * Follows the headless-first pattern: pure behavior, zero rendering.
 * Platform builders compose this hook with their own UI.
 *
 * This is a Layer 1 building-block hook for the **Environment Flow**.
 *
 * @example
 * ```tsx
 * function SecretField({ envId, secretKey }: Props) {
 *   const { reveal, revealedValue, isRevealing, clearRevealedValue } =
 *     useRevealSecretValue();
 *
 *   return revealedValue ? (
 *     <div>
 *       <code>{revealedValue}</code>
 *       <button onClick={clearRevealedValue}>Hide</button>
 *     </div>
 *   ) : (
 *     <button onClick={() => reveal(envId, secretKey)} disabled={isRevealing}>
 *       {isRevealing ? "Revealing…" : "Reveal"}
 *     </button>
 *   );
 * }
 * ```
 */
export declare function useRevealSecretValue(options?: UseRevealSecretValueOptions): UseRevealSecretValueReturn;
//# sourceMappingURL=useRevealSecretValue.d.ts.map