export { BaseDataSource } from "./base.js";
export { APIDataSource } from "./api.js";
export { SegmentDataSource } from "./segment.js";
/**
 * Data source manager for handling multiple sources
 */
export class DataSourceManager {
    sources: Map<any, any>;
    primary: any;
    /**
     * Add a data source
     * @param {string} name - Data source name
     * @param {BaseDataSource} source - Data source instance
     * @param {boolean} isPrimary - Whether this is the primary source for reading data
     */
    addSource(name: string, source: BaseDataSource, isPrimary?: boolean): void;
    /**
     * Initialize all data sources
     */
    initialize(): Promise<void>;
    /**
     * Push data to all sources
     */
    pushData(userId: any, data: any): Promise<void>;
    /**
     * Pull data from primary source
     */
    pullData(userId: any): Promise<any>;
    /**
     * Track event in all sources
     */
    trackEvent(userId: any, event: any): Promise<void>;
    /**
     * Get source by name
     */
    getSource(name: any): any;
    /**
     * Get all source names
     */
    getSourceNames(): any[];
    /**
     * Remove a source
     */
    removeSource(name: any): void;
    /**
     * Destroy all sources
     */
    destroy(): void;
}
//# sourceMappingURL=index.d.ts.map