import { Lexeme, Token } from "./lexer";
import { Stmt } from "./parser/";
import * as PP from "./preprocessor";
import * as BrsTypes from "./brsTypes";
export { BrsTypes as types };
export { PP as preprocessor };
import { FileSystem } from "./device/FileSystem";
import { AppExitReason } from "./common";
/**
 * A synchronous version of the lexer-parser flow.
 * @param fs the interpreter file system.
 * @param manifest Map with the manifest data.
 * @param sourceMap Map with the source code files content.
 * @param stats Map with the lexeme statistics.
 * @param password string with the encryption password (optional)
 *
 * @returns the ParseResult with the exit reason and the tokens and statements.
 */
export interface ParseResult {
    exitReason: AppExitReason;
    tokens: Token[];
    statements: Stmt.Statement[];
}
export declare function lexParseSync(fs: FileSystem, manifest: Map<string, any>, sourceMap: Map<string, string>, password?: string, stats?: Map<Lexeme, number>): ParseResult;
/**
 * Function to parse the decoded tokens and return the statements to be executed.
 * @param fs the interpreter file system.
 * @param manifest the manifest data.
 * @param decodedTokens a Map with the decoded tokens to parse.
 *
 * @returns the parsed statements array.
 */
export declare function parseDecodedTokens(fs: FileSystem, manifest: Map<string, any>, decodedTokens: Map<string, any>): Stmt.Statement[];
