export type AstNode = { type: string parent?: AstNode range?: [number, number] async?: boolean await?: boolean name?: string computed?: boolean object?: AstNode property?: AstNode callee?: AstNode arguments?: AstNode[] } export type OxlintRuleContext = { id: string filename: string cwd: string sourceCode: { text: string getText(node?: AstNode | null): string getLoc(node: AstNode): { start: { line: number; column: number } } } report(diagnostic: { node: AstNode; messageId: string }): void } export type OxlintRule = { meta: { type: 'problem' docs: { description: string; url: string } messages: Record schema: readonly [] } create(context: OxlintRuleContext): Record void) | undefined> }