import type { LiquidContext, SourceMap } from '@diplodoc/liquid';
import type { Meta } from "../meta";
import type { Logger } from "../logger";
import type { Bucket } from "../utils";
import type { AssetInfo, Collect, HeadingInfo, IncludeInfo, Location } from './types';
export declare enum TransformMode {
    Html = "html",
    Md = "md"
}
export declare class LoaderAPI {
    blockCodes: Bucket<Location[]>;
    comments: Bucket<Location[]>;
    deps: Bucket<IncludeInfo[]>;
    assets: Bucket<AssetInfo[]>;
    meta: Bucket<Meta>;
    headings: Bucket<HeadingInfo[]>;
    sourcemap: Bucket<Record<number | string, string>>;
    constructor(proxy?: Partial<LoaderAPI>);
}
export type LoaderContext = LiquidContext & {
    path: NormalizedPath;
    vars: Hash;
    logger: Logger;
    emitFile(path: NormalizedPath, content: string): Promise<void>;
    readFile(path: NormalizedPath): Promise<string>;
    fullPath(path: RelativePath): AbsolutePath;
    input: AbsolutePath;
    collects: Collect[];
    api: LoaderAPI;
    sourcemap: SourceMap;
    options: {
        disableLiquid: boolean;
        mergeContentParts: boolean;
        skipMissingVars?: boolean;
    };
    mode: 'build' | 'translate';
};
export declare function loader(this: LoaderContext, content: string): Promise<string>;
