/*
 * weinre is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2011 IBM Corporation
 */

// extra messages from the client to the target

module weinre {
    interface WeinreExtraClientCommands {
    
        void getDatabases(out Object[] databaseRecords);

    };
}

