/// <reference types="node" />
import { IActivatable, IDeactivatable } from '@darlean/base';
import { IncomingMessage, Server, ServerResponse } from 'http';
import { IWebServiceRequest, IWebServiceResponse } from '@darlean/webservice';
export interface IHandler {
    method?: string;
    path?: string;
    action: (req: IWebServiceRequest) => Promise<IWebServiceResponse>;
    placeholders?: string[];
}
export interface IHost {
    name: string;
    port: number;
    handlers: IHandler[];
}
export declare class WebServiceHostActor implements IActivatable, IDeactivatable {
    protected server: Server;
    protected config: IHost;
    protected port?: number;
    constructor(config: IHost);
    activate(): Promise<void>;
    deactivate(): Promise<void>;
    touch(): Promise<void>;
    protected handleRequest(req: IncomingMessage, res: ServerResponse<IncomingMessage>): Promise<void>;
}
