import type { Widget } from "./BaseBinderBuilder"; import type { KeyInteractionBinderBuilder } from "./KeyInteractionBinderBuilder"; import type { KeyInteractionCmdBinder } from "./KeyInteractionCmdBinder"; import type { WhenType } from "./When"; import type { RuleName, Severity } from "../checker/Checker"; import type { Command } from "../command/Command"; import type { Interaction, InteractionDataType } from "../interaction/Interaction"; import type { LogLevel } from "../logging/LogLevel"; export interface KeyInteractionBinder, A, D extends object = InteractionDataType> extends KeyInteractionBinderBuilder { when(fn: (i: D, acc: Readonly) => boolean, mode?: WhenType): KeyInteractionBinder; on(widget: ReadonlyArray> | Widget, ...widgets: ReadonlyArray>): KeyInteractionBinder; onDynamic(node: Widget): KeyInteractionBinder; log(...level: ReadonlyArray): KeyInteractionBinder; end(fn: () => void): KeyInteractionBinder; with(isCode: boolean, ...keysOrCodes: ReadonlyArray): KeyInteractionBinder; stopImmediatePropagation(): KeyInteractionBinder; preventDefault(): KeyInteractionBinder; catch(fn: (ex: unknown) => void): KeyInteractionBinder; name(name: string): KeyInteractionBinder; configureRules(ruleName: RuleName, severity: Severity): KeyInteractionBinder; toProduce(fn: (i: D) => C): KeyInteractionCmdBinder; toProduceAnon(fn: () => void): KeyInteractionCmdBinder; }