import type { Widget } from "./BaseBinderBuilder"; import type { BaseUpdateBinderBuilder } from "./BaseUpdateBinderBuilder"; import type { InteractionBinderBuilder } from "./InteractionBinderBuilder"; import type { WhenType } from "./When"; import type { RuleName, Severity } from "../checker/Checker"; import type { Interaction, InteractionDataType } from "../interaction/Interaction"; import type { LogLevel } from "../logging/LogLevel"; export interface InteractionUpdateBinderBuilder, A, D extends object = InteractionDataType> extends InteractionBinderBuilder, BaseUpdateBinderBuilder { cancel(fn: (i: D, acc: A) => void): InteractionUpdateBinderBuilder; endOrCancel(fn: (i: D, acc: A) => void): InteractionUpdateBinderBuilder; when(fn: (i: D, acc: Readonly) => boolean, mode?: WhenType): InteractionUpdateBinderBuilder; end(fn: () => void): InteractionUpdateBinderBuilder; on(widget: ReadonlyArray> | Widget, ...widgets: ReadonlyArray>): InteractionUpdateBinderBuilder; onDynamic(node: Widget): InteractionUpdateBinderBuilder; log(...level: ReadonlyArray): InteractionUpdateBinderBuilder; stopImmediatePropagation(): InteractionUpdateBinderBuilder; throttle(timeout: number): InteractionUpdateBinderBuilder; continuousExecution(): InteractionUpdateBinderBuilder; preventDefault(): InteractionUpdateBinderBuilder; catch(fn: (ex: unknown) => void): InteractionUpdateBinderBuilder; name(name: string): InteractionUpdateBinderBuilder; configureRules(ruleName: RuleName, severity: Severity): InteractionUpdateBinderBuilder; }