/** Resource offering an idempotent full shutdown (OpenTelemetry-style providers). */ export interface ShutdownResource { shutdown(): unknown; } /** Resource offering a cooperative stop; `false` means the stop failed. */ export interface StoppableResource { stop(): unknown; } /** Resource offering only hard disposal. */ export interface DestroyableResource { destroy(): unknown; } export declare function isShutdownResource(value: unknown): value is ShutdownResource; export declare function isStoppableResource(value: unknown): value is StoppableResource; export declare function isDestroyableResource(value: unknown): value is DestroyableResource; /** * Stops one runtime resource at most once, by duck type. * * The value may be the resource itself or a promise of it (registries commonly * store creation promises). A stoppable resource is stopped — a literal * `false` result is promoted to a thrown failure so callers on a * first-error-wins sweep see it — otherwise a destroyable resource is * destroyed, or a shutdown-only resource is shut down. This preserves the * preference for stop() over destroy() when several methods are available. * Values offering none of these methods, and repeats of an already-stopped * resource (the same instance is often registered under several names), are skipped. * The caller must share the set across its cleanup paths or leave separately * owned resources to their owner. Calling a resource's teardown directly does * not participate in this invocation guarantee. */ export declare function stopUniqueResource(value: unknown, stoppedResources: Set): Promise; //# sourceMappingURL=resourceTeardown.d.ts.map