import { FDisposable } from "./f_disposable.js"; import { FInitable } from "./f_initable.js"; import { FExecutionContext } from "../execution_context/f_execution_context.js"; export declare namespace FUsing { type ResourceInitializerWithExecutionContext = (executionContext: FExecutionContext) => T | Promise; type ResourceInitializerWithoutExecutionContext = () => T | Promise; type ResourceInitializer = ResourceInitializerWithExecutionContext | ResourceInitializerWithoutExecutionContext; type WorkerWithExecutionContext = (executionContext: FExecutionContext, resource: TResource) => Result; type WorkerWithoutExecutionContext = (resource: TResource) => Result; type Worker = WorkerWithExecutionContext | WorkerWithoutExecutionContext; type Result = T | Promise; } /** * @deprecated Use TypeScript 5.2 introduces a new keyword - 'using'. See https://github.com/tc39/proposal-explicit-resource-management */ export declare function FUsing(executionContext: FExecutionContext, resourceFactory: FUsing.ResourceInitializer, worker: FUsing.Worker): Promise;