import { DynamicModule, ModuleMetadata } from '@nestjs/common';
import { AnyType } from '@core/types';
import { ClassConstructorReturnType, ClassDefinition } from './types';
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?: AnyType[];
    useFactory: (...args: AnyType[]) => 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 {};
