/** * @packageDocumentation * Shared AST helpers for rules that reject unowned cleanup handles. */ import { type TSESTree } from "@typescript-eslint/utils"; /** * Unwrap syntax that does not change whether a resource expression is owned. */ export declare const getTransparentWrappedExpression: (node: Readonly) => Readonly | undefined; /** * Resolve a static property name from dot or string-literal member access. */ export declare const getStaticPropertyName: (node: Readonly, computed: boolean) => string | undefined; /** * Resolve a simple static member path such as `globalThis.URL.createObjectURL`. */ export declare const collectStaticMemberPath: (node: Readonly) => readonly string[] | undefined; /** * Walk through transparent syntax wrappers and return the first parent that * changes ownership semantics. */ export declare const getFirstOpaqueParent: (node: Readonly) => Readonly<{ current: Readonly; parent: Readonly; }> | undefined; /** * Check whether a resource-producing expression is discarded as a standalone * expression or explicitly voided. */ export declare const isDiscardedResourceExpression: (node: Readonly) => boolean; /** * Check whether a resource handle is immediately used as a member receiver * instead of being retained. Cleanup members are excluded so immediate cleanup * calls such as `new AudioContext().close()` are not reported here. */ export declare const isImmediateUnownedMemberReceiver: (node: Readonly, cleanupMemberNames: ReadonlySet) => boolean; //# sourceMappingURL=floating-resource.d.ts.map