import { Subject } from "rxjs"; import type { Binding } from "../../api/binding/Binding"; import type { VisitorBinding } from "../../api/binding/VisitorBinding"; import type { RuleName, Severity } from "../../api/checker/Checker"; import type { Command } from "../../api/command/Command"; import type { Interaction, InteractionDataType } from "../../api/interaction/Interaction"; import type { Logger } from "../../api/logging/Logger"; import type { UndoHistoryBase } from "../../api/undo/UndoHistoryBase"; import type { Observable } from "rxjs"; export declare class BindingImpl, A, D extends object = InteractionDataType> implements Binding { protected _name: string | undefined; protected _timeEnded: number; protected _timeCancelled: number; protected _activated: boolean; protected readonly _interaction: I; accumulator: A; readonly linterRules: ReadonlyMap; protected _cmd: C | undefined; readonly continuousCmdExecution: boolean; protected readonly cmdProducer: (i?: D) => C; protected readonly cmdsProduced: Subject; protected readonly accumulatorInit: A | undefined; protected undoHistory: UndoHistoryBase; protected logger: Logger; logBinding: boolean; logCmd: boolean; logUsage: boolean; constructor(continuousExecution: boolean, interaction: I, cmdProducer: (i?: D) => C, widgets: ReadonlyArray, undoHistory: UndoHistoryBase, logger: Logger, linterRules: ReadonlyMap, name?: string, accInit?: A); private reinitAccumulator; get name(): string; protected whenStart(): boolean; protected whenUpdate(): boolean; protected whenStop(): boolean; clearEvents(): void; protected createCommand(): C | undefined; isWhenDefined(): boolean; catch(_err: unknown): void; first(): void; then(): void; end(): void; cancel(): void; endOrCancel(): void; ifCmdHadNoEffect(): void; ifCmdHadEffects(): void; ifCannotExecuteCmd(): void; get interaction(): I; get command(): C | undefined; get activated(): boolean; set activated(activated: boolean); get running(): boolean; protected fsmError(err: unknown): void; protected fsmCancels(): void; private cancelContinousWithEffectsCmd; protected fsmStarts(): void; protected fsmUpdates(): void; private continuousExecutionOnFSMUpdate; protected fsmStops(): void; private executeCommandOnFSMStop; private createAndInitCommand; private afterCmdExecuted; uninstallBinding(): void; get produces(): Observable; get timesEnded(): number; get timesCancelled(): number; acceptVisitor(visitor: VisitorBinding): void; }