import * as ESTree from "estree";
export declare enum ExternalType {
    Identifier = "identifier",
    All = "all"
}
export declare enum ExportVariableType {
    Local = "local",
    External = "external"
}
export interface LocalExportVariable {
    type: ExportVariableType.Local;
    exportName: string;
    localName: string | null;
    node: ESTree.Node;
}
export interface ExternalVariable {
    type: ExportVariableType.External;
    moduleName: string;
    moduleType: ExternalType;
    names?: {
        exportName: string;
        sourceName: string;
    };
}
export declare type ExportVariable = LocalExportVariable | ExternalVariable;
export declare class ExportManager {
    readonly exportsMap: Map<string, ExportVariable>;
    readonly localVariables: LocalExportVariable[];
    readonly externalVariables: ExternalVariable[];
    exportDefaultDeclaration: ESTree.Node | null;
    addLocalExportVariable(exportVar: LocalExportVariable): void;
    addExternalVariable(external: ExternalVariable): void;
}