import { ExportFormats } from 'myst-frontmatter';
import type { ISession } from '../session/types.js';
import type { StartOptions } from './site/start.js';
import type { ExportWithInputOutput } from './types.js';
import type { RunExportOptions } from './utils/localArticleExport.js';
import type { CollectionOptions } from './utils/collectExportOptions.js';
type FormatBuildOpts = {
    /** Options to decide what to build */
    site?: boolean;
    docx?: boolean;
    pdf?: boolean;
    tex?: boolean;
    typst?: boolean;
    xml?: boolean;
    md?: boolean;
    meca?: boolean;
    cff?: boolean;
    html?: boolean;
    all?: boolean;
    force?: boolean;
    output?: string;
};
export type BuildOpts = FormatBuildOpts & CollectionOptions & RunExportOptions & StartOptions;
export declare function hasAnyExplicitExportFormat(opts: BuildOpts): boolean;
/**
 * Determine all allowed export formats based on CLI options and arguments
 *
 * @param opts.docx docx export explicitly requested with --docx option
 * @param opts.pdf pdf export explicitly requested with --pdf option
 * @param opts.tex (all formats follow as above)
 * @param opts.typst
 * @param opts.xml
 * @param opts.md
 * @param opts.meca
 * @param opts.all all exports requested with --all option
 * @param opts.explicit explicit input file was provided
 */
export declare function getAllowedExportFormats(opts: FormatBuildOpts & {
    explicit?: boolean;
}): ExportFormats[];
/**
 * Return requested formats from CLI options
 */
export declare function getRequestedExportFormats(opts: FormatBuildOpts): ExportFormats[];
export declare function exportSite(session: ISession, opts: FormatBuildOpts): boolean | undefined;
export declare function getProjectPaths(session: ISession): string[];
/**
 * Gather a list of export objects with resolved format/input/output values
 *
 * @param files list of files to export; if empty, current project will be loaded
 *     and all project files (including the config file) will be searched for exports
 * @param opts user-provided options, including desired export formats and output filename
 */
export declare function collectAllBuildExportOptions(session: ISession, files: string[], opts: BuildOpts): Promise<ExportWithInputOutput[]>;
export declare function build(session: ISession, files: string[], opts: BuildOpts): Promise<void>;
export {};
//# sourceMappingURL=build.d.ts.map