import { ServiceRepresentation, ServiceInstanceReference, Service, ProcessRepresentation } from '../domain';
import { WorkerContext } from '../application/WorkerContext';
/**
 * Class ServiceReconciler
 */
export declare class ServiceReconciler {
    protected context: WorkerContext;
    protected services: Map<string, ServiceInstanceReference>;
    protected state: 'notBoot' | 'booting' | 'booted' | 'stoping';
    protected processRepresentation: ProcessRepresentation;
    protected workModeByForce: any;
    constructor(processRepresentation: ProcessRepresentation, context: any, workModeByForce?: any);
    /**
     * Receive a service representation
     * @param {ServiceRepresentation} serviceRepresentation
     */
    receiveServiceRepresentation(serviceRepresentation: ServiceRepresentation): void;
    /**
     * Get ordered service id set, order by service weight
     * @param {"asc" | "desc"} order
     * @return {Array}
     */
    getOrderedServiceIdSet(order: 'asc' | 'desc'): any[];
    /**
     * Get service's weight by service's ID (name)
     * @param id
     * @param {string[]} chain
     * @return {any}
     */
    getWeight(id: any, chain?: string[]): any;
    /**
     * Instantiate all the services
     */
    instantiate(): void;
    /**
     * Start all the services
     * @return {Promise<void>}
     */
    start(): Promise<void>;
    stop(): Promise<void>;
    get<T extends Service>(id: any): T;
    getServiceClass(serviceName: any): any;
    getState(): "notBoot" | "booting" | "booted" | "stoping";
}
