package com.vaessl.app.sync;

import com.vaessl.app.shared.ServiceProvider;

/**
 * Implemented by any service that supports indexing its items into the vector store.
 */
public interface SyncProvider extends ServiceProvider {

    /**
     * Fetches all items from the remote service and indexes them into the vector store,
     * removing any previously indexed items that no longer exist upstream.
     *
     * @param request the sync request containing the app URL and user credentials
     */
    public void syncVectorStore(SyncRequest request);
}
