import type { AstNodeBase, AstNodeLayout, IdentifierNode, ImportSpecifierNode, LiteralStringNode } from "@/types";
import type { ImportNativeContext } from "@/services/grammar/ts/language/BattleScriptParser";
import { type ImportExternalContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { BattleScriptToAST } from "@/services";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface ImportDeclarationNode extends AstNodeBase {
    kind: "IMPORT_DECLARATION";
    isNamespace: boolean;
    isNative: boolean;
    source: LiteralStringNode | IdentifierNode;
    specifiers?: ImportSpecifierNode[];
    localIdentifier?: IdentifierNode;
}
export declare const ImportDeclarationNodeLayout: AstNodeLayout<ImportDeclarationNode>[];
export declare const importNativeToAstNode: (instance: BattleScriptToAST, ctx: ImportNativeContext) => ImportDeclarationNode;
export declare const importExternalToAstNode: (instance: BattleScriptToAST, ctx: ImportExternalContext) => ImportDeclarationNode;
export declare const importDeclarationFromAstNode: (instance: BattleScriptFromAST, node: ImportDeclarationNode, _options?: VisitOptions) => string;
//# sourceMappingURL=ImportDeclarationNode.d.ts.map