import type { Cache } from '../Cache'; import type { DataSource } from '../DataSource'; import type { DataSourceAspect } from '../DataSourceAspect'; import type { Described } from '../Described'; import type { BlockedRequest } from './BlockedRequest'; import * as I from '@principia/base/IO'; export declare class Empty { readonly _tag = "Empty"; readonly _R: (_: unknown) => void; } export declare const empty: BlockedRequests; export declare class Both { readonly left: BlockedRequests; readonly right: BlockedRequests; readonly _tag = "Both"; readonly _R: (_: R) => void; constructor(left: BlockedRequests, right: BlockedRequests); } export declare function both(left: BlockedRequests, right: BlockedRequests): BlockedRequests; export declare class Single { readonly dataSource: DataSource; readonly blockedRequest: BlockedRequest; readonly _tag = "Single"; readonly _R: (_: R) => void; readonly _A: () => A; constructor(dataSource: DataSource, blockedRequest: BlockedRequest); } export declare function single(dataSource: DataSource, blockedRequest: BlockedRequest): BlockedRequests; export declare class Then { readonly left: BlockedRequests; readonly right: BlockedRequests; readonly _tag = "Then"; readonly _R: (_: R) => void; constructor(left: BlockedRequests, right: BlockedRequests); } export declare function then(left: BlockedRequests, right: BlockedRequests): BlockedRequests; export declare type BlockedRequests = Empty | Both | Then | Single; export declare function mapDataSources(br: BlockedRequests, f: DataSourceAspect): BlockedRequests; export declare function gives_(br: BlockedRequests, f: Described<(r0: R0) => R>): BlockedRequests; export declare function run_(br: BlockedRequests, cache: Cache): I.IO; //# sourceMappingURL=BlockedRequests.d.ts.map