import MongoWrapper from "./db/MongoWrapper";
import MongoPoller from "./db/MongoPoller";
import Discovery from "./kafka/Discovery";
import MessageHandler from "./MessageHandler";
import Consumer from "./kafka/Consumer";
import Producer from "./kafka/Producer";
import { Metrics } from "./Metrics";
import PubSubHandler from "./PubSubHandler";
import PubSubToKafka from "./PubSubToKafka";
import PubSubToMetrics from "./PubSubToMetrics";
import { RoachConfig } from "./interfaces";
export default class RoachStorm {
    private readonly httpServer;
    readonly config: RoachConfig;
    readonly consumer: Consumer;
    readonly producer: Producer;
    readonly messageHandler: MessageHandler;
    readonly mongoWrapper: MongoWrapper;
    readonly mongoPoller: MongoPoller;
    readonly discovery: Discovery;
    readonly metrics: Metrics;
    readonly gcfMetrics: Metrics | null;
    readonly pubSubHandler: PubSubHandler;
    readonly pubSubToKafka: PubSubToKafka;
    readonly pubSubToMetrics: PubSubToMetrics | null;
    private alive;
    private ready;
    constructor(config: RoachConfig);
    private shutdownOnErrorIfNotProduction;
    private shutdownGracefully;
    private init;
    run(): Promise<void>;
    close(): Promise<void>;
    static isProduction(): boolean;
    setAliveState(state: boolean): void;
    isAlive(): boolean;
    setReadyState(state: boolean): void;
    isReady(): boolean;
}
//# sourceMappingURL=RoachStorm.d.ts.map