import type { Collect, IncludeInfo, Location } from "../../../../core/markdown";
/**
 * Adds YAML frontmatter to markdown content.
 *
 * @param content - Markdown content
 * @param meta - Metadata object to serialize as YAML frontmatter
 * @param lineWidth - Maximum line width for YAML dump (undefined = default)
 * @returns Content with YAML frontmatter prepended, or original content if meta is empty
 */
export declare function addMetaFrontmatter(content: string, meta: Hash, lineWidth: number | undefined): string;
export type StepFunction = {
    (scheduler: Scheduler, path: NormalizedPath): Promise<void>;
};
export type StepActor<Context extends Hash = Hash> = {
    (content: string, context: Context): Promise<string>;
};
export type HashedGraphNode = IncludeInfo & {
    content: string;
    hash: string;
    deps: HashedGraphNode[];
};
export declare function getCustomCollectPlugins(): Collect[];
export declare function rehashContent(content: string): string;
export declare function signlink(link: string, sign: string): string;
export declare class Scheduler {
    private entries;
    private steps;
    constructor(steps: (StepFunction | false | undefined)[]);
    add<Context extends Hash>(location: Location, actor: StepActor<Context>, context: Context): void;
    schedule(entry: NormalizedPath): Promise<void>;
    process(content: string): Promise<string>;
}
