import type { Run as BaseRun } from "../run";
import type { Preset } from './types';
import { Graph } from "../utils";
export type VarsServiceConfig = {
    varsPreset: string;
    vars: Hash;
    ignore: string[];
};
type Run = BaseRun<VarsServiceConfig>;
export declare class VarsService {
    readonly name = "Vars";
    readonly relations: Graph<{
        type: string;
    }>;
    private run;
    private logger;
    private config;
    private presets;
    private usePresets;
    private storeDeps;
    constructor(run: Run, { usePresets }?: {
        usePresets?: boolean | undefined;
    });
    init(presets?: NormalizedPath[]): Promise<Hash<any>[]>;
    /**
     * @returns preset value by filename
     */
    get(path: NormalizedPath): Preset | undefined;
    for(path: RelativePath, from?: NormalizedPath): Preset;
    /**
     * Получает файлы, которые зависят от изменённых свойств и (опционально) конкретного scopePath
     */
    getAffectedFiles(scopePath: string, changedProperties: string[]): Set<NormalizedPath>;
    getSpecifiedFiles(pathA: NormalizedPath, addedProps: string[], removedProps: string[]): Set<NormalizedPath>;
    dump(presets: Hash): string;
    private load;
    private scopes;
    private paths;
    /**
     * Отслеживает зависимость файла от свойства
     */
    private trackDependency;
    private trackMissedDependency;
}
export {};
