import { TypedAST } from "../../analysis/types.js"; import { AST, LocationRange } from "../../ast/types.js"; import { Env } from "../../dists/env.js"; import { result } from "../../utility/result.js"; import { SqCompileError, SqErrorList } from "../SqError.js"; import { SqLinker } from "../SqLinker.js"; import { ModulePointer, ProjectState } from "./ProjectState.js"; import { SqModuleOutput } from "./SqModuleOutput.js"; export type Import = { path: string; name: string; hash: string | undefined; variable: string; location: LocationRange; }; export declare function importToPointer(importBinding: Import): ModulePointer; type ImportModules = { type: "loaded"; value: Record; } | { type: "loading"; } | { type: "failed"; value: SqErrorList; }; type ImportOutputs = { type: "loaded"; value: Record; } | { type: "loading"; } | { type: "failed"; value: SqErrorList; }; type SqASTResult = result; type SqTypedASTResult = result; export declare class SqModule { name: string; code: string; pins: Record; private _ast?; private _typedAst?; constructor(params: { name: string; code: string; pins?: Record; }); ast(): SqASTResult; typedAst(): SqTypedASTResult; expectAst(): AST; expectTypedAst(): TypedAST; getImports(linker: SqLinker): Import[]; hash(): string; getImportModules({ state }: { state: ProjectState; }): ImportModules; getImportOutputs({ state, environment, }: { state: ProjectState; environment: Env; }): ImportOutputs; } export {}; //# sourceMappingURL=SqModule.d.ts.map