import type { Run as BaseRun } from "../run";
import type { VarsService } from "../vars";
import type { MetaService } from "../meta";
import type { VcsService } from "../vcs";
import type { AssetInfo, GraphInfo, LeadingPage } from './types';
import type { Langs } from '~/commands/build/types';
import { Graph, VFile } from "../utils";
type Run = BaseRun<LeadingServiceConfig> & {
    vars: VarsService;
    meta: MetaService;
    vcs: VcsService;
};
export type LeadingServiceConfig = {
    lang: string;
    langs: Langs;
    template: {
        enabled: boolean;
        keepNotVar: boolean;
        features: {
            conditions: boolean;
            substitutions: boolean;
        };
    };
};
export declare class LeadingService {
    readonly name = "Leading";
    get logger(): import("../run").RunLogger;
    private run;
    private config;
    private cache;
    private plugins;
    private pathToMeta;
    private pathToDeps;
    private pathToAssets;
    constructor(run: Run);
    init(): Promise<void>;
    load(path: RelativePath): Promise<LeadingPage>;
    dump(path: RelativePath, leading?: LeadingPage): Promise<VFile<LeadingPage>>;
    walkLinks(leading: LeadingPage | undefined, walker: (link: string) => string | void): any;
    deps(path: RelativePath): Promise<{
        path: NormalizedPath;
    }[]>;
    assets(path: RelativePath): Promise<AssetInfo[]>;
    relations(path: RelativePath): Promise<Graph<GraphInfo>>;
    release(path: NormalizedPath): void;
    private proxy;
    private loaderContext;
}
export {};
