import type { BaseBinder } from "./BaseBinder"; import type { Widget } from "./BaseBinderBuilder"; import type { BaseUpdateBinderBuilder } from "./BaseUpdateBinderBuilder"; import type { CmdUpdateBinder } from "./CmdUpdateBinder"; import type { InteractionUpdateBinder } from "./InteractionUpdateBinder"; 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 BaseUpdateBinder extends BaseUpdateBinderBuilder, BaseBinder { on(widget: ReadonlyArray> | Widget, ...widgets: ReadonlyArray>): BaseUpdateBinder; onDynamic(node: Widget): BaseUpdateBinder; when(fn: () => boolean, mode?: WhenType): BaseUpdateBinder; end(fn: () => void): BaseUpdateBinder; log(...level: ReadonlyArray): BaseUpdateBinder; continuousExecution(): BaseUpdateBinder; throttle(timeout: number): BaseUpdateBinder; toProduce(fn: () => C): CmdUpdateBinder; toProduceAnon(fn: () => void): CmdUpdateBinder; usingInteraction, A, D extends object = InteractionDataType>(fn: () => I): InteractionUpdateBinder; stopImmediatePropagation(): BaseUpdateBinder; preventDefault(): BaseUpdateBinder; catch(fn: (ex: unknown) => void): BaseUpdateBinder; name(name: string): BaseUpdateBinder; configureRules(ruleName: RuleName, severity: Severity): BaseUpdateBinder; }