import * as Effect from "./Effect.ts"; import * as Exit from "./Exit.ts"; import type { Pipeable } from "./Pipeable.ts"; import type * as Schedule from "./Schedule.ts"; import type * as Scope from "./Scope.ts"; import * as ScopedRef from "./ScopedRef.ts"; declare const TypeId: "~effect/Resource"; /** * A `Resource` is a value loaded into memory that can be refreshed manually or * automatically according to a schedule. * * @since 2.0.0 * @category models */ export interface Resource extends Pipeable { readonly [TypeId]: typeof TypeId; readonly scopedRef: ScopedRef.ScopedRef>; readonly acquire: Effect.Effect; } /** * @since 2.0.0 * @category guards */ export declare const isResource: (u: unknown) => u is Resource; /** * Creates a `Resource` that must be refreshed manually. * * @since 2.0.0 * @category constructors */ export declare const manual: (acquire: Effect.Effect) => Effect.Effect, never, Scope.Scope | R>; /** * Creates a `Resource` that refreshes automatically according to the supplied * schedule. * * @since 2.0.0 * @category constructors */ export declare const auto: (acquire: Effect.Effect, policy: Schedule.Schedule) => Effect.Effect, never, R | R2 | Scope.Scope>; /** * Retrieves the current value stored in this resource. * * @since 2.0.0 * @category getters */ export declare const get: (self: Resource) => Effect.Effect; /** * Refreshes this resource. * * @since 2.0.0 * @category utils */ export declare const refresh: (self: Resource) => Effect.Effect; export {}; //# sourceMappingURL=Resource.d.ts.map