import { RhamtModel, RhamtConfiguration } from './model';
import { rhamtEvents } from './events';
export declare class RhamtModelService {
    model: RhamtModel;
    loaded: boolean;
    onLoaded: rhamtEvents.TypedEvent<RhamtModel>;
    onCreated: rhamtEvents.TypedEvent<RhamtConfiguration>;
    onDeleted: rhamtEvents.TypedEvent<RhamtConfiguration>;
    onChanged: rhamtEvents.TypedEvent<RhamtConfiguration>;
    onSaved: rhamtEvents.TypedEvent<RhamtModel>;
    constructor(model: RhamtModel);
    init(stateLocation: string): Promise<any>;
    load(location: string): Promise<RhamtModel>;
    private parse(data);
    save(stateLocation: string): void;
    doSave(stateLocation: string, data: any): void;
    getConfiguration(id: string): RhamtConfiguration | undefined;
    createConfiguration(): RhamtConfiguration;
    createConfigurationWithName(name: string): RhamtConfiguration;
    deleteConfiguration(id?: string, configuration?: RhamtConfiguration): boolean;
    update(id: string, name: string, cli: string, javaHome: string, options: Array<{
        name: string;
        value: string;
    }>): RhamtConfiguration | undefined;
    replace(configuration: RhamtConfiguration): void;
    private generateConfigurationName();
    dispose(): void;
    onModelLoaded(listen: (m: RhamtModel) => void): rhamtEvents.Disposable;
}
