import { type Result } from '../../plain_result/result.js';
import { type Option } from './option.js';
/**
 *  Transposes an `Option` of a `Result` into a `Result` of an `Option`.
 *
 *  - `Some(Ok(x))` -> `Ok(Some(x))`
 *  - `Some(Err(e))` -> `Err(e)`
 *  - `None` => `Ok(None)`
 */
export declare function transposeOptionToResult<T, E>(input: Option<Result<T, E>>): Result<Option<T>, E>;
/**
 *  Transposes a `Result` of an `Option` into an `Option` of a `Result`.
 *
 *  - `Ok(Some(v))` -> `Some(Ok(v))`
 *  - `Ok(None)` -> `None`
 *  - `Err(e)` -> `Some(Err(e))`
 */
export declare function transposeResultToOption<T, E>(input: Result<Option<T>, E>): Option<Result<T, E>>;
