import { Parser } from '../components/parser/index';
import Program from '../components/parser/program';
import BlockStatement from '../components/parser/statement/blockStatement';
import BreakStatement from '../components/parser/statement/breakStatement';
import ContinueStatement from '../components/parser/statement/continueStatement';
import EmptyStatement from '../components/parser/statement/emptyStatement';
import AdditiveExpression from '../components/parser/statement/expression/addititveExpression';
import AssignmentExpression from '../components/parser/statement/expression/assignmentExpression';
import EqualityExpression from '../components/parser/statement/expression/equalityExpression';
import IdentifierExpression from '../components/parser/statement/expression/identifierExpression';
import BooleanLiteral from '../components/parser/statement/expression/literals/booleanLiteral';
import NullLiteral from '../components/parser/statement/expression/literals/nullLiteral';
import NumericLiteral from '../components/parser/statement/expression/literals/numericLiteral';
import StringLiteral from '../components/parser/statement/expression/literals/stringLiteral';
import LogicalANDExpression from '../components/parser/statement/expression/logicalANDExpression';
import LogicalORExpression from '../components/parser/statement/expression/logicalORExpression';
import MultiplicativeExpression from '../components/parser/statement/expression/multiplicativeExpression';
import ParanthesizedExpression from '../components/parser/statement/expression/paranthesizedExpression';
import PrimaryExpression from '../components/parser/statement/expression/primaryExpression';
import RelationalExpression from '../components/parser/statement/expression/relationalExpression';
import ExpressionStatement from '../components/parser/statement/expressionStatement';
import IfStatement from '../components/parser/statement/ifStatement';
import InitStatement from '../components/parser/statement/initStatement';
import PrintStatement from '../components/parser/statement/printStatement';
import VariableStatement from '../components/parser/statement/variableStatement';
import WhileStatement from '../components/parser/statement/whileStatement';
import StatementList from '../components/parser/statementList';
import TokenExecutor from '../components/parser/tokenExecutor';
import { Tokenizer } from '../components/tokenizer/types';
import '../components/parser/types/nodeTypes';
import '../components/parser/statement/index';
import '../components/parser/statement/expression/index';
import '../constants/constants';
import '../components/parser/statement/expression/literals/index';

declare class BhaiLangModule {
    private static _tokenizer?;
    private static _initStatement?;
    private static _parser?;
    private static _program?;
    private static _statementList?;
    private static _tokenExecutor?;
    private static _expresionStatement?;
    private static _printStatement?;
    private static _emptyStatement?;
    private static _blockStatement?;
    private static _additiveExpression?;
    private static _multiplicativeExpression?;
    private static _primaryExpression?;
    private static _paranthesizedExpression?;
    private static _numericLiteral?;
    private static _stringLiteral?;
    private static _idetifierExpression?;
    private static _variableStatement?;
    private static _ifStatement?;
    private static _assignmentExpression?;
    private static _booleanLiteral?;
    private static _nullLiteral?;
    private static _equalityExpression?;
    private static _logicalANDExpression?;
    private static _logicalORExpression?;
    private static _relationalExpression?;
    private static _breakStatement?;
    private static _continueStatement?;
    private static _whileStatement?;
    static getTokenizer(): Tokenizer;
    static getTokenExecutor(): TokenExecutor;
    static getStatementList(): StatementList;
    static getInitStatement(): InitStatement;
    static getPrintStatement(): PrintStatement;
    static getIfStatement(): IfStatement;
    static getBreakStatement(): BreakStatement;
    static getContinueStatement(): ContinueStatement;
    static getWhileStatement(): WhileStatement;
    static getExpressionStatement(): ExpressionStatement;
    static getEmptyStatement(): EmptyStatement;
    static getBlockStatement(): BlockStatement;
    static getVariableStatement(): VariableStatement;
    static getAdditiveExpression(): AdditiveExpression;
    static getMultiplicativeExpression(): MultiplicativeExpression;
    static getPrimaryExpression(): PrimaryExpression;
    static getParanthesizedExpression(): ParanthesizedExpression;
    static getIndentifierExpression(): IdentifierExpression;
    static getEqualityExpression(): EqualityExpression;
    static getLogicalANDExpression(): LogicalANDExpression;
    static getLogicalORExpression(): LogicalORExpression;
    static getRelationalExpression(): RelationalExpression;
    static getAssignmentExpression(): AssignmentExpression;
    static getNumericLiteral(): NumericLiteral;
    static getStringLiteral(): StringLiteral;
    static getBooleanLiteral(): BooleanLiteral;
    static getNullLiteral(): NullLiteral;
    static getProgram(): Program;
    static getParser(): Parser;
}

export { BhaiLangModule as default };
