import { ServiceOptions } from './models';
import { IWebAppServiceComposer } from './WebAppServiceComposer';
import { IWorkerServiceComposer } from './WorkerServiceComposer';
import { ICustomServiceComposer } from './CustomServiceComposer';
export interface IRegisterService {
    /** Specify service type for this omnia service project.
    E.g. A service could be a worker, doing simple async jobs, worker queues etc
    it can also be a webapp serving UI resources
    */
    registerService: (serviceInfo: ServiceOptions) => IServiceComposer;
}
export interface IServiceComposer {
    /**
    * Register service to be of type web app
    */
    AsWebApp: () => IWebAppServiceComposer;
    /**
    * Register service to be of type worker
    */
    AsWorker: () => IWorkerServiceComposer;
    /**
    * Register service to be of custom type (to install helm)
    */
    AsCustom: () => ICustomServiceComposer;
}
export declare class ServiceComposer implements IServiceComposer {
    private manifestId;
    private manifestName;
    private serviceInfo;
    constructor(manifestId: string, manifestName: string, serviceInfo: ServiceOptions);
    AsWebApp: () => IWebAppServiceComposer;
    AsWorker: () => IWorkerServiceComposer;
    AsCustom: () => ICustomServiceComposer;
}
