/** Inspection is legal, but often the author meant the eventual value. */ import type { Span } from "../../source.ts"; import type { ValueType } from "../../types.ts"; import type { Expression } from "../../ast.ts"; import type { Binding } from "../scopes.ts"; export type PromiseInspectionSite = "print" | "str"; /** Function types are not value identity: a mutable cell can change callees. */ export declare class PromiseInspectionAliases { private readonly aliases; private readonly lookup; constructor(lookup: (name: string) => Binding | null); site(expression: Expression): PromiseInspectionSite | null; bind(binding: Binding, site: PromiseInspectionSite | null): void; } export interface PromiseInspectionHost { expandAliases(type: ValueType): ValueType; advise(code: string, message: string, span: Span): void; } export declare function advisePromiseInspection(host: PromiseInspectionHost, type: ValueType, span: Span, site: "print" | "str" | "f-string"): void; //# sourceMappingURL=promises.d.ts.map