import type { MaybePromise } from '@difizen/mana-common';
import { Deferred } from '@difizen/mana-common';
import { SyringeModule } from '@difizen/mana-syringe';
import type { CanloadModule, ModuleLoader, ModulePreload } from './module-protocol';
export declare class ManaModule extends SyringeModule<MaybePromise<ManaModule>> {
    protected preloadMethod?: ModulePreload;
    protected canloadMethod?: CanloadModule;
    /**
     * @internal
     */
    loadDefer: Deferred<void>;
    get load(): Promise<void>;
    canload(fn: CanloadModule): this;
    preload(fn: ModulePreload): this;
    toLoader(): ModuleLoader;
    static create(name?: string): ManaModule;
}
export declare namespace ManaModule {
    function is(data: Record<any, any> | undefined): data is ManaModule;
}
//# sourceMappingURL=mana-module.d.ts.map