import 'reflect-metadata';
import { type CanActivate, type DynamicModule, type InjectionToken, type MiddlewareConsumer, type NestModule, type OptionalFactoryDependency, type Type } from '@nestjs/common';
import { type TelescopeModuleOptions } from './telescope.options.js';
export declare class TelescopeModule implements NestModule {
    private readonly moduleOptions;
    constructor(moduleOptions: TelescopeModuleOptions);
    configure(consumer: MiddlewareConsumer): void;
    static forRoot(options?: TelescopeModuleOptions): DynamicModule;
    static forRootAsync(config: {
        useFactory: (...args: unknown[]) => Promise<TelescopeModuleOptions> | TelescopeModuleOptions;
        inject?: (InjectionToken | OptionalFactoryDependency)[];
        imports?: DynamicModule['imports'];
        /**
         * Mount path for the dashboard + API. Must be passed statically here (not
         * via the async factory) because the controller route is bound at
         * module-build time. Defaults to `'telescope'`.
         */
        path?: string;
        /**
         * Guard classes (or instances) fronting the console's API controllers. Must
         * be passed HERE (not inside the async-resolved options) because guard
         * stamping happens at module-build time, synchronously — the SAME
         * constraint as `path` above. See {@link TelescopeModuleOptions.guards}.
         * A class guard's dependencies resolve from `imports` above.
         */
        guards?: Array<Type<CanActivate> | CanActivate>;
    }): DynamicModule;
}
//# sourceMappingURL=telescope.module.d.ts.map