import { IGraphElement, LernaGraph, LernaNode } from './';
import { ServiceStatus } from './enums/service.status';
import { Observable } from 'rxjs';
import { RecompilationScheduler } from '../utils/scheduler';
interface IServiceLogs {
    offline: string[];
    createDomain: string[];
    deploy: string[];
}
export declare class Service extends LernaNode {
    private status;
    private readonly _port;
    private process;
    private logStream;
    private readonly _logs;
    private _slsYamlWatcher;
    constructor(scheduler: RecompilationScheduler, graph: LernaGraph, node: IGraphElement, nodes: Set<LernaNode>, elements: IGraphElement[]);
    getStatus(): ServiceStatus;
    get logs(): IServiceLogs;
    get port(): number;
    stop(): Observable<Service>;
    start(): Observable<Service>;
    private _watchServerlessYaml;
    protected _unwatchServerlessYaml(): Promise<void>;
    private _startProcess;
    private _watchStarted;
    private _handleLogs;
    private _updateStatus;
    isRunning(): boolean;
    package(level?: number): Observable<{
        service: Service;
        megabytes: number;
    }>;
    deploy(region: string, stage: string): Promise<void>;
    createCustomDomain(region: string, stage: string): Promise<void>;
}
export {};
