/// <reference types="node" />
import express from 'express';
import http from 'http';
import { Message } from 'react-cosmos-shared2/util';
import { CosmosConfig } from '../config/shared';
import { PlatformType } from '../shared/types';
declare type PluginCleanupCallback = () => unknown;
declare type PluginReturn = void | null | PluginCleanupCallback;
export declare type DevServerPluginArgs = {
    cosmosConfig: CosmosConfig;
    platformType: PlatformType;
    httpServer: http.Server;
    expressApp: express.Express;
    sendMessage(msg: Message): unknown;
};
export declare type DevServerPlugin = (args: DevServerPluginArgs) => PluginReturn | Promise<PluginReturn>;
export declare function startDevServer(platformType: PlatformType, plugins?: DevServerPlugin[]): Promise<() => Promise<void>>;
export {};
