import { Func, Enviroment, Options, Lexer, Parser, Program, LangObject } from './tiny';
export * from './tiny';
declare type Stdio = (...x: Array<any>) => any;
interface TinyOption extends Options {
    enviroment?: Enviroment;
    root?: string;
    filename?: string;
}
interface StdioOptions {
    stdin: Stdio;
    stdout: Stdio;
    stderr: Stdio;
}
declare const stdin: Stdio;
declare const stdout: Stdio;
declare const stderr: Stdio;
export default class Tiny {
    x: string;
    option: TinyOption;
    builtins: Map<string, Func>;
    stdio: StdioOptions;
    constructor(x: string, option?: TinyOption);
    tokenizer(): Lexer;
    parser(): Parser;
    parseProgram(): Program;
    includeStdlib(env: Enviroment): void;
    evaluate(program: Program, env: Enviroment): LangObject;
    eval(): string;
    evalProgram(program: Program): string;
    setBuiltin(name: string, func: Func): Tiny;
    setBuiltins(builtins: Map<string, Func>): Tiny;
    applyBuiltins(): Tiny;
    setStdin(func: Stdio): Tiny;
    setStdout(func: Stdio): Tiny;
    setStderr(func: Stdio): Tiny;
    setFileName(filename: string): Tiny;
}
export { TinyOption, Stdio, StdioOptions, stdin, stdout, stderr };
