// 
// Decompiled by Procyon v0.6.0
// 

package org.jline.console;

import java.io.File;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import org.jline.reader.Completer;
import java.util.Collection;

public interface ScriptEngine
{
    String getEngineName();
    
    Collection<String> getExtensions();
    
    Completer getScriptCompleter();
    
    boolean hasVariable(final String p0);
    
    void put(final String p0, final Object p1);
    
    Object get(final String p0);
    
    default Map<String, Object> find() {
        return this.find(null);
    }
    
    Map<String, Object> find(final String p0);
    
    void del(final String... p0);
    
    String toJson(final Object p0);
    
    String toString(final Object p0);
    
    Map<String, Object> toMap(final Object p0);
    
    default Object deserialize(final String value) {
        return this.deserialize(value, null);
    }
    
    Object deserialize(final String p0, final String p1);
    
    List<String> getSerializationFormats();
    
    List<String> getDeserializationFormats();
    
    void persist(final Path p0, final Object p1);
    
    void persist(final Path p0, final Object p1, final String p2);
    
    Object execute(final String p0) throws Exception;
    
    default Object execute(final Path script) throws Exception {
        return this.execute(script.toFile(), null);
    }
    
    default Object execute(final File script) throws Exception {
        return this.execute(script, null);
    }
    
    default Object execute(final Path script, final Object[] args) throws Exception {
        return this.execute(script.toFile(), args);
    }
    
    Object execute(final File p0, final Object[] p1) throws Exception;
    
    Object execute(final Object p0, final Object... p1);
}
