import type { Widget } from "./BaseBinderBuilder"; import type { InteractionUpdateBinder } from "./InteractionUpdateBinder"; import type { KeyInteractionBinderBuilder } from "./KeyInteractionBinderBuilder"; import type { WhenType } from "./When"; import type { Binding } from "../binding/Binding"; 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 KeyInteractionCmdUpdateBinder, A, D extends object = InteractionDataType> extends KeyInteractionBinderBuilder, InteractionUpdateBinder { with(isCode: boolean, ...keysOrCodes: ReadonlyArray): KeyInteractionCmdUpdateBinder; then(fn: ((c: C, i: D, acc: A) => void) | ((c: C) => void)): KeyInteractionCmdUpdateBinder; continuousExecution(): KeyInteractionCmdUpdateBinder; throttle(timeout: number): KeyInteractionCmdUpdateBinder; first(fn: (c: C, i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; on(widget: ReadonlyArray> | Widget, ...widgets: ReadonlyArray>): KeyInteractionCmdUpdateBinder; onDynamic(node: Widget): KeyInteractionCmdUpdateBinder; log(...level: ReadonlyArray): KeyInteractionCmdUpdateBinder; cancel(fn: (i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; endOrCancel(fn: (i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; when(fn: (i: D, acc: Readonly) => boolean, mode?: WhenType): KeyInteractionCmdUpdateBinder; ifHadEffects(fn: (c: C, i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; ifHadNoEffect(fn: (c: C, i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; ifCannotExecute(fn: (c: C, i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; end(fn: (c: C, i: D, acc: A) => void): KeyInteractionCmdUpdateBinder; stopImmediatePropagation(): KeyInteractionCmdUpdateBinder; preventDefault(): KeyInteractionCmdUpdateBinder; catch(fn: (ex: unknown) => void): KeyInteractionCmdUpdateBinder; name(name: string): KeyInteractionCmdUpdateBinder; configureRules(ruleName: RuleName, severity: Severity): KeyInteractionCmdUpdateBinder; bind(): Binding; }