import * as ts from "typescript";
export declare const getDynamicImportLiteralSpecifier: (node: ts.CallExpression) => string | undefined;
export declare const isClosedWorldDynamicImportSpecifier: (specifier: string) => boolean;
export declare const isSideEffectOnlyDynamicImport: (node: ts.CallExpression) => boolean;
export type DynamicImportSite = {
    readonly node: ts.CallExpression;
    readonly specifier: string;
};
export type DynamicImportNamespaceEntry = {
    readonly exportName: string;
    readonly ownerFilePath: string;
    readonly memberName: string;
    readonly memberKind: "function" | "variable";
    readonly declarationName: ts.Identifier;
};
export type DynamicImportNamespaceResolution = {
    readonly ok: true;
    readonly specifier: string;
    readonly resolvedFilePath: string;
    readonly entries: readonly DynamicImportNamespaceEntry[];
} | {
    readonly ok: false;
    readonly reason: string;
};
type DynamicImportModuleContext = {
    readonly checker: ts.TypeChecker;
    readonly compilerOptions: ts.CompilerOptions;
    readonly sourceFilesByPath: ReadonlyMap<string, ts.SourceFile>;
};
export declare const resolveDynamicImportNamespace: (node: ts.CallExpression, containingFile: string, ctx: DynamicImportModuleContext) => DynamicImportNamespaceResolution;
export declare const collectClosedWorldDynamicImportSites: (sourceFile: ts.SourceFile) => readonly DynamicImportSite[];
export {};
//# sourceMappingURL=dynamic-import.d.ts.map