import { FlexibleFactory } from '@devbro/neko-helper'; import { MailerProvider } from './MailerProvider.mjs'; import './Mailable.mjs'; /** * Factory class for creating and registering mailer providers. * Uses a flexible factory pattern to manage different mailer provider implementations. */ declare class MailerProviderFactory { /** The singleton factory instance */ static instance: FlexibleFactory; /** * Registers a mailer provider factory function. * @template T - The provider type * @param key - Unique identifier for the provider * @param factory - Factory function that creates the provider instance */ static register(key: string, factory: (...args: any[]) => MailerProvider): void; /** * Creates a mailer provider instance. * @template T - The provider type * @param key - The provider identifier * @param args - Arguments to pass to the provider factory * @returns A new mailer provider instance */ static create(key: string, ...args: any[]): MailerProvider; } export { MailerProviderFactory };