/**
 * Municipal data clients
 */
export * from './base-client';
export * from './socrata';
import { MunicipalSearchParams } from '../types';
import { BaseMunicipalClient } from './base-client';
import { MunicipalSource } from '../types/sources';
/**
 * Client configuration with authentication tokens
 */
export interface ClientFactoryConfig {
    timeout?: number;
    retries?: number;
    debug?: boolean;
    socrataToken?: string;
}
/**
 * Factory to create appropriate client for a municipal source
 */
export declare class ClientFactory {
    private config;
    constructor(config?: ClientFactoryConfig);
    /**
     * Create a client for the given municipal source
     */
    createClient(source: MunicipalSource, params: MunicipalSearchParams): BaseMunicipalClient;
    /**
     * Create API client based on API type
     */
    private createApiClient;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<ClientFactoryConfig>): void;
    /**
     * Set universal Socrata token
     */
    setSocrataToken(token: string): void;
}
