import { _A } from "@effect-ts/core/Effect";
import type { Either } from "@effect-ts/core/Either";
import type { Option } from "@effect-ts/core/Option";
import type { _A as _GetA, _E as _GetE } from "@effect-ts/core/Utils";
import type { Ref } from "@effect-ts/system/Ref";
import type { Request } from "../../Request/index.js";
export declare const BlockedRequestSym: unique symbol;
export declare type BlockedRequestSym = typeof BlockedRequestSym;
/**
* A `BlockedRequest[A]` keeps track of a request of type `A` along with a
* `Ref` containing the result of the request, existentially hiding the result
* type. This is used internally by the library to support data sources that
* return different result types for different requests while guaranteeing that
* results will be of the type requested.
*/
export declare class BlockedRequest {
readonly request: Request<_GetE, _GetA>;
readonly result: Ref