/**
 * Municipal source registry management
 */
import { MunicipalSource } from './types/sources';
/**
 * Source registry manager
 */
export declare class SourceRegistryManager {
    private registry;
    private runtimeSources;
    constructor();
    /**
     * Get all sources (built-in + runtime)
     */
    getAllSources(): MunicipalSource[];
    /**
     * Get sources by state
     */
    getSourcesByState(state: 'ca' | 'ny' | 'fl'): MunicipalSource[];
    /**
     * Get source by ID
     */
    getSource(id: string): MunicipalSource | undefined;
    /**
     * Get sources by priority
     */
    getSourcesByPriority(priority: 'high' | 'medium' | 'low'): MunicipalSource[];
    /**
     * Get sources by type
     */
    getSourcesByType(type: 'api' | 'portal' | 'scraping'): MunicipalSource[];
    /**
     * Get API sources (easiest to implement)
     */
    getApiSources(): MunicipalSource[];
    /**
     * Get Socrata sources specifically
     */
    getSocrataSources(): MunicipalSource[];
    /**
     * Get enabled sources only
     */
    getEnabledSources(): MunicipalSource[];
    /**
     * Get sources for implementation (high priority, API-based)
     */
    getImplementationReadySources(): MunicipalSource[];
    /**
     * Update source status
     */
    updateSourceStatus(id: string, updates: Partial<Pick<MunicipalSource, 'enabled' | 'lastChecked' | 'lastError'>>): void;
    /**
     * Get registry metadata
     */
    getRegistryInfo(): {
        version: string;
        lastUpdated: string;
        totalSources: number;
    };
    /**
     * Search sources by name or ID
     */
    searchSources(query: string): MunicipalSource[];
    /**
     * Get sources that cover a specific city/area
     */
    getSourcesForLocation(city: string, state?: string): MunicipalSource[];
    /**
     * Register a new source at runtime
     */
    registerSource(source: MunicipalSource): void;
    /**
     * Unregister a runtime source
     */
    unregisterSource(id: string): boolean;
    /**
     * Check if a source is built-in or runtime-added
     */
    isBuiltInSource(id: string): boolean;
    /**
     * Get only built-in sources
     */
    getBuiltInSources(): MunicipalSource[];
    /**
     * Get only runtime sources
     */
    getRuntimeSources(): MunicipalSource[];
}
export declare const sourceRegistry: SourceRegistryManager;
