/**
 * Base class for UIFlow data sources
 */
export class BaseDataSource {
    constructor(config?: {});
    config: {};
    ready: boolean;
    /**
     * Initialize the data source
     */
    initialize(): Promise<void>;
    /**
     * Check if data source is ready
     */
    isReady(): boolean;
    /**
     * Push usage data to the data source
     * @param {string} userId - User identifier
     * @param {Object} data - Usage data to push
     */
    pushData(userId: string, data: Object): Promise<void>;
    /**
     * Pull user settings from the data source
     * @param {string} userId - User identifier
     * @returns {Object} User settings data
     */
    pullData(userId: string): Object;
    /**
     * Track a UI interaction event
     * @param {string} userId - User identifier
     * @param {Object} event - Event data
     */
    trackEvent(userId: string, event: Object): Promise<void>;
    /**
     * Clean up resources
     */
    destroy(): void;
}
//# sourceMappingURL=base.d.ts.map