import * as http from 'http';
import Koa from 'koa';
import { ILogger } from 'redis-smq-common';
import { IRedisSMQRestApiConfig, IRedisSMQRestApiParsedConfig } from './config/index.js';
import { IApplicationMiddlewareContext, IApplicationMiddlewareState } from './lib/application/types/index.js';
export declare class RedisSMQRestApi {
    protected app: Koa<IApplicationMiddlewareState, IApplicationMiddlewareContext>;
    protected config: IRedisSMQRestApiParsedConfig;
    protected runHttpServer: boolean;
    protected logger: ILogger;
    protected httpServer: http.Server;
    protected bootstrapped: boolean;
    constructor(config?: IRedisSMQRestApiConfig, runHttpServer?: boolean);
    protected initApplicationMiddlewares(): Promise<void>;
    protected initOpenApi(): Promise<void>;
    protected initRouting(): Promise<void>;
    protected bootstrap(): Promise<void>;
    run(): Promise<void>;
    getApplication(): Promise<(req: http.IncomingMessage | import("http2").Http2ServerRequest, res: http.ServerResponse | import("http2").Http2ServerResponse) => Promise<void>>;
    shutdown(): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map