import type { BaseBinderBuilder, Widget } from "./BaseBinderBuilder"; import type { CmdBinder } from "./CmdBinder"; import type { InteractionBinder } from "./InteractionBinder"; import type { WhenType } from "./When"; import type { LogLevel } from "../../interacto"; import type { RuleName, Severity } from "../checker/Checker"; import type { Command } from "../command/Command"; import type { Interaction, InteractionDataType } from "../interaction/Interaction"; export interface BaseBinder extends BaseBinderBuilder { on(widget: ReadonlyArray> | Widget, ...widgets: ReadonlyArray>): BaseBinder; onDynamic(node: Widget): BaseBinder; when(whenPredicate: () => boolean, mode?: WhenType): BaseBinder; end(fn: () => void): BaseBinder; log(...level: ReadonlyArray): BaseBinder; catch(fn: (ex: unknown) => void): BaseBinder; name(name: string): BaseBinder; configureRules(ruleName: RuleName, severity: Severity): BaseBinder; toProduce(fn: () => C): CmdBinder; toProduceAnon(fn: () => void): CmdBinder; usingInteraction, A, D extends object = InteractionDataType>(fn: () => I): InteractionBinder; }