import type { FSWatcher } from 'vite';
import type { AstroSettings } from '../@types/astro.js';
import type { Logger } from '../core/logger/core.js';
import { DataStore } from './data-store.js';
import type { DataWithId, LoaderContext } from './loaders/types.js';
export interface SyncContentLayerOptions {
    store?: DataStore;
    settings: AstroSettings;
    logger: Logger;
    watcher?: FSWatcher;
}
/**
 * Run the `load()` method of each collection's loader, which will load the data and save it in the data store.
 * The loader itself is responsible for deciding whether this will clear and reload the full collection, or
 * perform an incremental update. After the data is loaded, the data store is written to disk.
 */
export declare function syncContentLayer({ settings, logger: globalLogger, store, watcher, }: SyncContentLayerOptions): Promise<void>;
export declare function simpleLoader(handler: () => Array<DataWithId> | Promise<Array<DataWithId>>, context: LoaderContext): Promise<void>;
