import type { VisitorBinding } from "./VisitorBinding"; import type { RuleName, Severity } from "../checker/Checker"; import type { Command } from "../command/Command"; import type { Interaction, InteractionDataType } from "../interaction/Interaction"; import type { Observable } from "rxjs"; export interface Binding, A, D extends object = InteractionDataType> { readonly name: string; logUsage: boolean; logBinding: boolean; logCmd: boolean; readonly accumulator: A; readonly interaction: I; readonly command: C | undefined; readonly linterRules: ReadonlyMap; activated: boolean; readonly running: boolean; readonly continuousCmdExecution: boolean; readonly timesEnded: number; readonly timesCancelled: number; readonly produces: Observable; isWhenDefined(): boolean; uninstallBinding(): void; acceptVisitor(visitor: VisitorBinding): void; }