import type { Widget } from "./BaseBinderBuilder"; import type { InteractionUpdateBinderBuilder } from "./InteractionUpdateBinderBuilder"; import type { KeyBinderBuilder } from "./KeyBinderBuilder"; import type { KeyInteractionCmdUpdateBinder } from "./KeyInteractionCmdUpdateBinder"; 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 KeyInteractionUpdateBinder, A, D extends object = InteractionDataType> extends InteractionUpdateBinderBuilder, KeyBinderBuilder { on(widget: ReadonlyArray> | Widget, ...widgets: ReadonlyArray>): KeyInteractionUpdateBinder; onDynamic(node: Widget): KeyInteractionUpdateBinder; log(...level: ReadonlyArray): KeyInteractionUpdateBinder; when(fn: (i: D, acc: Readonly) => boolean, mode?: WhenType): KeyInteractionUpdateBinder; continuousExecution(): KeyInteractionUpdateBinder; throttle(timeout: number): KeyInteractionUpdateBinder; with(isCode: boolean, ...keysOrCodes: ReadonlyArray): KeyInteractionUpdateBinder; stopImmediatePropagation(): KeyInteractionUpdateBinder; preventDefault(): KeyInteractionUpdateBinder; cancel(fn: (i: D, acc: A) => void): KeyInteractionUpdateBinder; endOrCancel(fn: (i: D, acc: A) => void): KeyInteractionUpdateBinder; catch(fn: (ex: unknown) => void): KeyInteractionUpdateBinder; name(name: string): KeyInteractionUpdateBinder; configureRules(ruleName: RuleName, severity: Severity): KeyInteractionUpdateBinder; toProduce(fn: (i: D) => C): KeyInteractionCmdUpdateBinder; toProduceAnon(fn: () => void): KeyInteractionCmdUpdateBinder; }