import { ServeAndBuildChecker, BuildInCheckerNames } from './types';
import { Script } from './worker';
import type { CreateDiagnostic, BuildInCheckers } from './types';
export interface CheckerMeta<T extends BuildInCheckerNames> {
    name: T;
    absFilePath: string;
    createDiagnostic: CreateDiagnostic<T>;
    build: ServeAndBuildChecker['build'];
    script?: Script<any>;
}
export declare abstract class Checker<T extends BuildInCheckerNames> implements CheckerMeta<T> {
    static logger: ((...args: any[]) => void)[];
    static log(...args: any[]): void;
    name: T;
    absFilePath: string;
    createDiagnostic: CreateDiagnostic<T>;
    build: ServeAndBuildChecker['build'];
    script?: Script<any>;
    constructor({ name, absFilePath, createDiagnostic, build }: CheckerMeta<T>);
    prepare(): Script<Pick<BuildInCheckers, T>>;
    initMainThread(): ((config: any, env: import("vite").ConfigEnv) => ServeAndBuildChecker) | undefined;
    initWorkerThread(): void;
}
//# sourceMappingURL=Checker.d.ts.map