import { ChangeOfFile } from 'incremental-compiler';
import { BaseCompilerForProject } from './base-compiler-for-project';
import { BaseProject } from './base-project';
export declare abstract class BaseDebounceCompilerForProject<ADDITIONAL_DATA = any, PROJECT extends BaseProject = BaseProject> extends BaseCompilerForProject<ADDITIONAL_DATA, PROJECT> {
    protected initialParams: ADDITIONAL_DATA;
    /**
     * default debounce time is 1s
     */
    protected debounceTime: number;
    abstract action({ changeOfFiles, asyncEvent, }: {
        changeOfFiles: ChangeOfFile[];
        asyncEvent: boolean;
    }): any;
    /**
     * current files that are in project
     */
    protected exitedFilesAbsPathes: string[];
    /**
     * @deprecated use action() instead
     */
    syncAction(absFilesPathes: string[], initialParams: ADDITIONAL_DATA): Promise<void>;
    private lastAsyncFilesChanges;
    private debounceAction;
    /**
     * @deprecated use action() instead
     */
    asyncAction(asyncEvents: ChangeOfFile, initialParams?: ADDITIONAL_DATA): Promise<void>;
}