import { Bus, EventType } from '../bus';
import { Git } from '../git';
import { Logger } from '../logger';
import { TaskRunner } from '../taskrunner';
export interface Linter {
    start(trigger: EventType): 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 {
    violation?: {
        fileName: string;
        message: string;
        line: number;
        column: number;
        hasFix: boolean;
    };
    finished?: {
        success: boolean;
    };
    error?: {
        message: string;
    };
}
export declare let createLinter: (dependencies: {
    taskRunner: TaskRunner;
    logger: Logger;
    bus: Bus;
    git: Git;
}) => Linter;
