import { RbxPath } from "@roblox-ts/rojo-resolver";
import { SourceFileWithTextRange } from "./types";
import ts from "typescript";
export type DiagnosticFactory<T extends Array<unknown> = []> = {
    (node: ts.Node | SourceFileWithTextRange, ...context: T): ts.DiagnosticWithLocation;
    id: number;
};
export declare function getDiagnosticId(diagnostic: ts.Diagnostic): number;
export declare const errors: {
    noInvalidIdentifier: DiagnosticFactory<[]>;
    noReservedIdentifier: DiagnosticFactory<[]>;
    noReservedClassFields: DiagnosticFactory<[]>;
    noClassMetamethods: DiagnosticFactory<[]>;
    noForInStatement: DiagnosticFactory<[]>;
    noLabeledStatement: DiagnosticFactory<[]>;
    noDebuggerStatement: DiagnosticFactory<[]>;
    noNullLiteral: DiagnosticFactory<[]>;
    noPrivateIdentifier: DiagnosticFactory<[]>;
    noTypeOfExpression: DiagnosticFactory<[]>;
    noRegex: DiagnosticFactory<[]>;
    noBigInt: DiagnosticFactory<[]>;
    noAny: DiagnosticFactory<[]>;
    noVar: DiagnosticFactory<[]>;
    noGetterSetter: DiagnosticFactory<[]>;
    noAutoAccessorModifiers: DiagnosticFactory<[]>;
    noEqualsEquals: DiagnosticFactory<[]>;
    noExclamationEquals: DiagnosticFactory<[]>;
    noEnumMerging: DiagnosticFactory<[]>;
    noNamespaceMerging: DiagnosticFactory<[]>;
    noSpreadDestructuring: DiagnosticFactory<[]>;
    noFunctionExpressionName: DiagnosticFactory<[]>;
    noPrecedingSpreadElement: DiagnosticFactory<[]>;
    noLuaTupleDestructureAssignmentExpression: DiagnosticFactory<[]>;
    noExportAssignmentLet: DiagnosticFactory<[]>;
    noGlobalThis: DiagnosticFactory<[]>;
    noArguments: DiagnosticFactory<[]>;
    noPrototype: DiagnosticFactory<[]>;
    noRobloxSymbolInstanceof: DiagnosticFactory<[]>;
    noNonNumberStringRelationOperator: DiagnosticFactory<[]>;
    noInstanceMethodCollisions: DiagnosticFactory<[]>;
    noStaticMethodCollisions: DiagnosticFactory<[]>;
    noUnaryPlus: DiagnosticFactory<[]>;
    noNonNumberUnaryMinus: DiagnosticFactory<[]>;
    noAwaitForOf: DiagnosticFactory<[]>;
    noAsyncGeneratorFunctions: DiagnosticFactory<[]>;
    noNonStringModuleSpecifier: DiagnosticFactory<[]>;
    noIterableIteration: DiagnosticFactory<[]>;
    noMixedTypeCall: DiagnosticFactory<[]>;
    noIndexWithoutCall: DiagnosticFactory<[]>;
    noCommentDirectives: DiagnosticFactory<[]>;
    noOptionalMacroCall: DiagnosticFactory<[]>;
    noConstructorMacroWithoutNew: DiagnosticFactory<[]>;
    noMacroExtends: DiagnosticFactory<[]>;
    noMacroUnion: DiagnosticFactory<[]>;
    noMacroObjectSpread: DiagnosticFactory<[]>;
    noVarArgsMacroSpread: DiagnosticFactory<[]>;
    noRangeMacroOutsideForOf: DiagnosticFactory<[]>;
    noTupleMacroOutsideReturn: DiagnosticFactory<[]>;
    noModuleSpecifierFile: DiagnosticFactory<[]>;
    noInvalidModule: DiagnosticFactory<[]>;
    noUnscopedModule: DiagnosticFactory<[]>;
    noNonModuleImport: DiagnosticFactory<[]>;
    noIsolatedImport: DiagnosticFactory<[]>;
    noServerImport: DiagnosticFactory<[]>;
    noPrecedingJsxSpreadElement: DiagnosticFactory<[]>;
    expectedMethodGotFunction: DiagnosticFactory<[]>;
    expectedFunctionGotMethod: DiagnosticFactory<[]>;
    noRojoData: DiagnosticFactory<[path: string, isPackage: boolean]>;
    noPackageImportWithoutScope: DiagnosticFactory<[path: string, rbxPath: RbxPath]>;
    incorrectFileName: (originalFileName: string, suggestedFileName: string, fullPath: string) => ts.Diagnostic;
    rojoPathInSrc: (partitionPath: string, suggestedPath: string) => ts.Diagnostic;
};
export declare const warnings: {
    truthyChange: (checksStr: string) => DiagnosticFactory<[]>;
    stringOffsetChange: (text: string) => DiagnosticFactory<[]>;
    transformerNotFound: (name: string, err: unknown) => ts.Diagnostic;
    runtimeLibUsedInReplicatedFirst: DiagnosticFactory<[]>;
};
