import type * as Tp from "../Collections/Immutable/Tuple/index.js"; import type { HasUnify } from "../Utils/index.js"; import { unifyIndex } from "../Utils/index.js"; import * as T from "./deps-core.js"; import type { Finalizer, ReleaseMap } from "./ReleaseMap/index.js"; export declare const ManagedURI = "@matechs/core/Eff/ManagedURI"; export declare type ManagedURI = typeof ManagedURI; export interface Managed extends HasUnify { readonly [unifyIndex]: ManagedURI; readonly [T._U]: ManagedURI; readonly [T._E]: () => E; readonly [T._A]: () => A; readonly [T._R]: (_: R) => void; readonly effect: T.Effect, E, Tp.Tuple<[Finalizer, A]>>; } export declare class ManagedImpl implements Managed { readonly effect: T.Effect, E, Tp.Tuple<[Finalizer, A]>>; readonly [unifyIndex]: ManagedURI; readonly [T._U]: ManagedURI; readonly [T._E]: () => E; readonly [T._A]: () => A; readonly [T._R]: (_: R) => void; constructor(effect: T.Effect, E, Tp.Tuple<[Finalizer, A]>>); } export declare function managedApply(effect: T.Effect, E, Tp.Tuple<[Finalizer, A]>>): Managed; export declare type UIO = Managed; export declare type RIO = Managed; export declare type IO = Managed; declare module "../Utils" { interface UnifiableIndexed { [ManagedURI]: [X] extends [Managed] ? Managed : never; } } //# sourceMappingURL=managed.d.ts.map