import { type DynamicModule, Logger, type Type } from '@nestjs/common';
import type { ApiDocumentFactory } from '@opra/common';
import type { HttpAdapter } from '@opra/http';
export declare namespace OpraHttpModule {
    export interface ModuleOptions extends BaseModuleOptions, ApiConfig {
    }
    export interface AsyncModuleOptions extends BaseModuleOptions {
        inject?: any[];
        useFactory?: (...args: any[]) => Promise<ApiConfig> | ApiConfig;
    }
    interface BaseModuleOptions extends Pick<DynamicModule, 'imports' | 'providers' | 'exports' | 'controllers' | 'global'> {
        token?: any;
        basePath?: string;
        schemaIsPublic?: boolean;
        interceptors?: (HttpAdapter.InterceptorFunction | HttpAdapter.IHttpInterceptor | Type<HttpAdapter.IHttpInterceptor>)[];
    }
    export interface ApiConfig extends Pick<ApiDocumentFactory.InitArguments, 'types' | 'references' | 'info'> {
        name: string;
        description?: string;
        scope?: string;
        logger?: Logger;
    }
    export {};
}
export declare class OpraHttpModule {
    /**
     *
     * @param init
     */
    static forRoot(init: OpraHttpModule.ModuleOptions): DynamicModule;
    /**
     *
     * @param options
     */
    static forRootAsync(options: OpraHttpModule.AsyncModuleOptions): DynamicModule;
}
