import { Bus, EventType } from "../bus";
import { Git } from "../git";
import { Logger } from "../logger";
import { TaskRunner } from "../taskrunner";
export interface Linter {
    start(trigger: EventType, coldStart?: boolean): void;
    stop(): void;
    lintOnce(fix: boolean, files?: string[]): Promise<boolean>;
}
/**
 * The messages that are sent to the linter-process
 */
export interface LinterCommand {
    fix: boolean;
    filesToLint: string[];
}
export interface LinterResponse {
    summary?: {
        message: string;
        errorCount: number;
        warningCount: number;
        fixableCount: number;
        fixCount: number;
    };
    finished?: {
        success: boolean;
    };
    error?: {
        message: string;
    };
}
export declare function createLinter(dependencies: {
    taskRunner: TaskRunner;
    logger: Logger;
    bus: Bus;
    git: Git;
}): Linter;
