import { Task } from '../managers/tasks.js';
import Settings from '../settings.js';
import { MicromatchOptions, ReaderOptions } from '../types.js';
import DeepFilter from './filters/deep.js';
import EntryFilter from './filters/entry.js';
import ErrorFilter from './filters/error.js';
import EntryTransformer from './transformers/entry.js';
export default abstract class Provider<T> {
    protected readonly _settings: Settings;
    readonly errorFilter: ErrorFilter;
    readonly entryFilter: EntryFilter;
    readonly deepFilter: DeepFilter;
    readonly entryTransformer: EntryTransformer;
constructor(_settings: Settings);
    abstract read(_task: Task): T;
    protected _getRootDirectory(task: Task): string;
    protected _getReaderOptions(task: Task): ReaderOptions;
    protected _getMicromatchOptions(): MicromatchOptions;
}
