/**
 * Broker Factory Implementation
 * Creates broker service instances using dynamic plugin registry
 * No hardcoded broker references - fully pluggable architecture
 */
import { IBrokerService, IBrokerFactory } from '../interfaces/IBrokerService';
import { BrokerRegistry } from '../registry/BrokerRegistry';
export declare class BrokerFactory implements IBrokerFactory {
    private static instance;
    private registry;
    private constructor();
    static getInstance(): BrokerFactory;
    /**
     * Create a broker service instance
     * @param brokerName - Name of the broker (e.g., 'shoonya', 'fyers')
     * @returns IBrokerService instance
     * @throws Error if broker is not supported
     */
    createBroker(brokerName: string): IBrokerService;
    /**
     * Get list of all supported brokers
     * @returns Array of supported broker names
     */
    getSupportedBrokers(): string[];
    /**
     * Check if a broker is supported
     * @param brokerName - Name of the broker to check
     * @returns true if broker is supported, false otherwise
     */
    isBrokerSupported(brokerName: string): boolean;
    /**
     * Register a new broker dynamically
     * @param brokerName - Name of the broker
     * @param brokerCreator - Function that creates the broker service instance
     */
    registerBroker(brokerName: string, brokerCreator: () => IBrokerService): void;
    /**
     * Unregister a broker
     * @param brokerName - Name of the broker to unregister
     */
    unregisterBroker(brokerName: string): void;
    /**
     * Get the underlying registry instance
     * @returns BrokerRegistry instance
     */
    getRegistry(): BrokerRegistry;
}
export declare const brokerFactory: BrokerFactory;
//# sourceMappingURL=BrokerFactory.d.ts.map