import type { MLResultInfo } from '../types';
import type { APIOptions, MLEngineEventMap } from './types';
import type { MLFile, Target } from '@markuplint/file-resolver';
import type { Document, RuleConfigValue } from '@markuplint/ml-core';
import { StrictEventEmitter } from 'strict-event-emitter';
type MLEngineOptions = {
    debug?: boolean;
    watch?: boolean;
};
export default class MLEngine extends StrictEventEmitter<MLEngineEventMap> {
    #private;
    static toMLFile(target: Target): Promise<MLFile>;
    constructor(file: MLFile, options?: APIOptions & MLEngineOptions);
    get document(): Document<RuleConfigValue, unknown> | null;
    close(): Promise<void>;
    exec(): Promise<MLResultInfo | null>;
    setCode(code: string): Promise<void>;
    watchMode(enable: boolean): void;
    private createCore;
    private i18n;
    private onChange;
    private provide;
    private resolveConfig;
    private resolveParser;
    private resolveRules;
    private resolveRuleset;
    private resolveSchemas;
    private setup;
}
export {};
