import ts from 'typescript';
import { BabelCodeFrameOptions, Formatter, Issue, IssueLocation, IssuePosition, IssueSeverity } from './types';
import { MessagePort } from 'worker_threads';
export declare function deduplicateAndSortIssues(issues: Issue[]): Issue[];
export declare function compareIssues(issueA: Issue, issueB: Issue): number;
export declare function compareIssueSeverities(severityA: IssueSeverity, severityB: IssueSeverity): number;
export declare function compareIssueLocations(locationA?: IssueLocation, locationB?: IssueLocation): number;
export declare function compareIssuePositions(positionA?: IssuePosition, positionB?: IssuePosition): number;
export declare function compareStrings(stringA?: string, stringB?: string): number;
export declare function equalsIssues(issueA: Issue, issueB: Issue): boolean;
export declare function isIssue(value: unknown): value is Issue;
export declare function isIssueSeverity(value: unknown): value is IssueSeverity;
export declare function createIssueFromDiagnostic(diagnostic: ts.Diagnostic): Issue;
export declare function getDiagnosticsOfProgram(program: ts.Program | ts.BuilderProgram | ts.SemanticDiagnosticsBuilderProgram): ts.Diagnostic[];
export declare function afterProgramEmitAndDiagnostics(program: ts.Program | ts.BuilderProgram | ts.SemanticDiagnosticsBuilderProgram, port: MessagePort): void;
export interface IssueCustom extends Issue {
    formatted?: string | undefined;
    formattedColor?: string | undefined;
}
export declare class IssueError {
    readonly issue: IssueCustom;
    file: string;
    message: string;
    constructor(issue: IssueCustom);
}
export declare function formatIssueLocation(location: IssueLocation): string;
export declare function createCodeFrameFormatter(options?: BabelCodeFrameOptions): Formatter;
export declare function createBasicFormatter(): Formatter;
export declare function forwardSlash(input: string): string;
