/// <reference types="node" />
import { QuirrelServerConfig } from "./scheduler";
import { LoggerType } from "./shared/logger";
import { QuirrelWorkerConfig } from "./worker";
export declare type QuirrelConfig = Omit<QuirrelServerConfig, "logger"> & Omit<QuirrelWorkerConfig, "enableUsageMetering" | "logger"> & {
    logger?: LoggerType;
};
export declare function runQuirrel(config: QuirrelConfig): Promise<{
    server: {
        server: import("http").Server;
        app: import("fastify").FastifyInstance<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse, import("pino").Logger<{
            level: string;
        }>, import("fastify").FastifyTypeProviderDefault> & PromiseLike<import("fastify").FastifyInstance<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse, import("pino").Logger<{
            level: string;
        }>, import("fastify").FastifyTypeProviderDefault>>;
        port: number;
        close(): Promise<void>;
    };
    worker: {
        close: () => Promise<void>;
    };
    httpServer: import("http").Server;
    close(): Promise<void>;
}>;
