///
import { type Offense, type Theme } from '@shopify/theme-check-node';
interface OffenseMap {
[check: string]: Offense[];
}
interface TransformedOffense {
check: string;
severity: string;
start_row: number;
start_column: number;
end_row: number;
end_column: number;
message: string;
}
interface TransformedOffenseMap {
path: string;
offenses: TransformedOffense[];
errorCount: number;
warningCount: number;
infoCount: number;
}
export type FailLevel = 'error' | 'suggestion' | 'style' | 'warning' | 'info' | 'crash';
/**
* Format theme-check Offenses into a format for cli-kit to output.
*/
export declare function formatOffenses(offenses: Offense[]): (string | {
error: string;
warn?: undefined;
info?: undefined;
} | {
warn: string;
error?: undefined;
info?: undefined;
} | {
info: string;
error?: undefined;
warn?: undefined;
} | {
bold: string;
subdued?: undefined;
} | {
subdued: string;
bold?: undefined;
})[];
/**
* Sorts theme check offenses. First all offenses are grouped by file path,
* then within each collection of offenses, they are sorted by severity.
*/
export declare function sortOffenses(offenses: Offense[]): OffenseMap;
export declare function formatSummary(offenses: Offense[], offensesByFile: OffenseMap, theme: Theme): string[];
export declare function renderOffensesText(offensesByFile: OffenseMap, themeRootPath: string): void;
export declare function formatOffensesJson(offensesByFile: OffenseMap): TransformedOffenseMap[];
/**
* Handles the process exit based on the offenses and fail level.
*/
export declare function handleExit(offenses: Offense[], failLevel: FailLevel): void;
export declare function initConfig(root: string): Promise;
export declare function performAutoFixes(sourceCodes: Theme, offenses: Offense[]): Promise;
export declare function outputActiveConfig(themeRoot: string, configPath?: string): Promise;
export declare function outputActiveChecks(root: string, configPath?: string): Promise;
interface ExtendedWriteStream extends NodeJS.WriteStream {
_handle: {
setBlocking: (blocking: boolean) => void;
};
}
export declare function isExtendedWriteStream(stream: NodeJS.WriteStream): stream is ExtendedWriteStream;
export {};