import type { Run as BaseRun } from "../run";
import type { VarsService } from "../vars";
import type { Meta, MetaService } from "../meta";
import type { TransformMode } from './loader';
import type { AssetInfo, Collect, EntryGraph, EntryInfo, GraphInfo, HeadingInfo, IncludeInfo, Plugin } from './types';
import { Graph, VFile } from "../utils";
type MarkdownServiceConfig = {
    outputFormat: `${TransformMode}`;
    template: {
        enabled: boolean;
        keepNotVar: boolean;
        legacyConditions: boolean;
        features: {
            substitutions: boolean;
            conditions?: boolean | 'strict';
        };
        scopes: {
            code: boolean;
        };
    };
    preprocess?: {
        mergeSvg?: boolean;
        mergeIncludes?: boolean;
        hashIncludes?: boolean;
        mergeAutotitles?: boolean;
    };
};
type Run = BaseRun<MarkdownServiceConfig> & {
    meta: MetaService;
    vars: VarsService;
};
type Options = {
    mode: 'build' | 'translate';
    skipMissingVars: boolean;
};
export declare class MarkdownService {
    readonly name = "Markdown";
    get logger(): import("../run").RunLogger;
    get plugins(): Plugin[];
    get collects(): Collect[];
    get config(): import("../config").Config<import("../program").BaseConfig & MarkdownServiceConfig>;
    private run;
    private _collects;
    private _plugins;
    private pathToMeta;
    private pathToComments;
    private pathToDeps;
    private pathToAssets;
    private pathToHeadings;
    private pathToSourcemap;
    private cache;
    private options;
    constructor(run: Run, options?: Options);
    init(): Promise<void>;
    load(path: RelativePath, from?: NormalizedPath): Promise<any>;
    dump(file: NormalizedPath, markdown?: string): Promise<VFile<string, EntryInfo>>;
    meta(path: RelativePath): Promise<Meta>;
    deps(path: RelativePath): Promise<IncludeInfo[]>;
    graph(path: RelativePath): Promise<EntryGraph>;
    relations(path: RelativePath): Promise<Graph<GraphInfo>>;
    assets(path: RelativePath): Promise<AssetInfo[]>;
    headings(path: RelativePath): Promise<HeadingInfo[]>;
    titles(path: RelativePath): Promise<Hash<string>>;
    inspect(path: RelativePath, raw: string, vars: Hash): Promise<{
        content: string;
        deps: IncludeInfo[];
        assets: AssetInfo[];
    }>;
    remap(path: RelativePath, line: number): number;
    release(path: NormalizedPath, from?: NormalizedPath): void;
    private _meta;
    private _deps;
    private _graph;
    private _relations;
    private _assets;
    private _headings;
    private proxy;
    private loaderContext;
}
export {};
