import { FastifyInstance } from 'fastify';
import { Adapter, AdapterDependencies } from './adapter';
import { AdapterSettings, SettingsDefinitionMap } from './config';
export { FastifyInstance as ServerInstance };
export interface httpsOptions {
    https: {
        key: string;
        cert: string;
        ca: string;
        passphrase?: string;
        requestCert: boolean;
    };
}
export declare const getTLSOptions: (adapterSettings: AdapterSettings) => {
    https?: undefined;
} | {
    https: {
        key: string;
        cert: string;
        ca: string;
        passphrase: string;
        requestCert: boolean;
    };
};
/**
 * Main function for the framework.
 * Initializes config and dependencies, uses those to initialize Transports, and starts listening for requests.
 *
 * @param adapter - an object describing an External Adapter
 * @param dependencies - an optional object with adapter dependencies to inject
 * @returns a Promise that resolves to the http.Server listening for connections
 */
export declare const start: <T extends SettingsDefinitionMap>(adapter: Adapter<T>, dependencies?: Partial<AdapterDependencies>) => Promise<{
    api: FastifyInstance | undefined;
    metricsApi: FastifyInstance | undefined;
}>;
export declare const expose: <T extends SettingsDefinitionMap>(adapter: Adapter<T>, dependencies?: Partial<AdapterDependencies>) => Promise<FastifyInstance | undefined>;
