import type { AstNode, AstNodeBase, AstNodeLayout } from "@/types";
import type { BattleScriptToAST } from "@/services";
import type { InterfaceDeclarationContext } from "@/services/grammar/ts/language/BattleScriptParser";
import type { BattleScriptFromAST } from "@/services/fullAst/BattleScriptFromAST";
import type { VisitOptions } from "@/types/VisitOptions";
export interface InterfaceNode extends AstNodeBase {
    kind: "INTERFACE";
    name: AstNode;
    extends: AstNode | null;
    properties: AstNode[];
    isExported?: boolean;
}
export declare const InterfaceNodeLayout: AstNodeLayout<InterfaceNode>[];
export declare const interfaceDeclarationToAstNode: (instance: BattleScriptToAST, ctx: InterfaceDeclarationContext) => InterfaceNode;
export declare const interfaceDeclarationFromAstNode: (instance: BattleScriptFromAST, node: InterfaceNode, _options?: VisitOptions) => string;
//# sourceMappingURL=InterfaceNode.d.ts.map