import { type DynamicModule, type InjectionToken, type ModuleMetadata } from "@nestjs/common";
import type { ClassConstructorReturnType, ClassDefinition } from "./aws-sdk-v3.type.js";
interface RegisterOptions<C extends ClassDefinition> {
    isGlobal?: boolean;
    key?: string;
    client: ClassConstructorReturnType<C>;
}
interface RegisterAsyncOptions<C extends ClassDefinition> extends Pick<ModuleMetadata, "imports"> {
    isGlobal?: boolean;
    key?: string;
    clientType: C;
    inject?: InjectionToken[];
    useFactory: (...args: any[]) => ClassConstructorReturnType<C> | Promise<ClassConstructorReturnType<C>>;
}
export declare class AwsSdkModule {
    static register<C extends ClassDefinition>(options: RegisterOptions<C>): DynamicModule;
    static registerAsync<C extends ClassDefinition>(options: RegisterAsyncOptions<C>): Promise<DynamicModule>;
}
export {};
