declare type MessageCategory = 'error' | 'warning' | 'info' | 'log' | 'debug'; declare type TypedObject = { [key: string]: T; }; declare enum ExitCode { OK = 0, WARNING = 1, ERROR = 2, WARNING_EXCEPTION = 3, ERROR_EXCEPTION = 4, NODE_ERROR = 5, NEEDS_READJUSTMENT = 6 } interface ITSMessage { message: string; line: number; character: number; width: number; issuer: string; category: MessageCategory; type: string; } interface IFileInfo { fileName: string; absPath: string; outDirectory: string; } interface IFileMessages extends IFileInfo { messages: ITSMessage[]; } interface IMessageReference { message: ITSMessage; fileInfo: IFileInfo; } interface IMessageInfo { count: number; references: IMessageReference[]; } interface IProjectResults { numMessages: number; numErrors: number; numWarnings: number; results: TypedObject; byMessage: TypedObject; } interface IProjectStatus { status: ExitCode; exceptions: TypedObject<{ type: string; found: number; allowed: number; failed: boolean; }>; } export { MessageCategory, TypedObject, ExitCode, ITSMessage, IFileInfo, IFileMessages, IMessageInfo, IMessageReference, IProjectResults, IProjectStatus, };