import { Terminal } from "../../core";
import { ContainerDef, DevDocker } from "./docker";
export declare const PORT_NONE = -1;
/**
 * SE instance config
 */
export declare type SEInstanceConfig = {
    /**
     * Instance name
     */
    name: string;
    /**
     * Components version
     */
    version: string;
    /**
     * Port on localhost used to expose GraphQL API
     * GraphQL API is accessible through http://localhost:port/graphql
     * Node Requests API is accessible through http://localhost:port/topics/requests
     * Default value: 80
     */
    port: number;
    /**
     * Port on localhost used to expose ArangoDB API
     */
    dbPort?: number;
    /**
     * Optional port on localhost used to expose Node API
     */
    nodePort?: number;
};
declare type SEConfig = {
    instances: SEInstanceConfig[];
};
export declare function getVersions(): Promise<string[]>;
export declare function getLatestVersion(): Promise<string>;
export declare function getConfig(): Promise<SEConfig>;
export declare function setConfig(config: SEConfig): void;
export declare function filterInstances(instances: SEInstanceConfig[], filter: string): SEInstanceConfig[];
export declare function filterConfigInstances(filter: string): Promise<SEInstanceConfig[]>;
export declare function instanceContainerDef(instance: SEInstanceConfig): ContainerDef;
declare type SEInstanceInfo = {
    state: string;
    docker: {
        image: string;
        container: string;
    };
};
export declare function getInstanceInfo(docker: DevDocker, instance: SEInstanceConfig): Promise<SEInstanceInfo>;
export declare function updateConfig(terminal: Terminal, filter: string, updates: Partial<SEInstanceConfig>): Promise<void>;
export {};
//# sourceMappingURL=installer.d.ts.map