import type { Bud } from '@roots/bud-framework';
import type { Watcher as BudWatcher } from '@roots/bud-framework/services/server';
import type { FSWatcher } from 'node:fs';
import * as chokidar from '@roots/bud-support/chokidar';
/**
 * FS Watcher
 */
export declare class Watcher implements BudWatcher {
    _app: () => Bud;
    /**
     * Watch files
     */
    files: Set<string>;
    /**
     * Watcher instance
     */
    instance: FSWatcher;
    /**
     * Watch options
     */
    options: chokidar.WatchOptions;
    /**
     * Class constructor
     *
     * @param app - Application instance
     */
    constructor(_app: () => Bud);
    /**
     * App instance
     */
    get app(): Bud;
    /**
     * Logger
     */
    get logger(): any;
    /**
     * Initialize watch files
     */
    watch(): Promise<undefined | Watcher['instance']>;
    /**
     * Watcher callback
     */
    watcherCallback(path: string): void;
}
