/* auto-generated by NAPI-RS */
/* eslint-disable */
export interface Diagnostic {
  severity: string
  message: string
  ruleId?: string
  category?: string
  reason?: string
  description?: string
  loc?: DiagnosticLocation
  details: Array<DiagnosticDetail>
}

export interface DiagnosticDetail {
  kind: string
  loc?: DiagnosticLocation
  message?: string
}

export interface DiagnosticLocation {
  start: DiagnosticPosition
  end: DiagnosticPosition
  filename?: string
  identifierName?: string
}

export interface DiagnosticPosition {
  line: number
  column: number
  index?: number
}

export declare function isReactCompilerRequired(code: Buffer, signal?: AbortSignal | undefined | null): Promise<boolean>

export declare function isReactCompilerRequiredSync(code: Buffer): boolean

export declare function lint(code: string, syntax?: Buffer | undefined | null, signal?: AbortSignal | undefined | null): Promise<Array<Diagnostic>>

export declare function lintSync(code: string, syntax?: Buffer | undefined | null): Array<Diagnostic>
