import { JDRegister, PackedValues } from "../jdom/jacdac-jdom"; import { TestErrorBase } from "./base"; import { EventWithHoldAdapter } from "./eventhold"; export declare class RegisterConditionError extends TestErrorBase { } export interface RegisterValueOptions { precondition?: number | [number, number]; } declare abstract class BaseRegisterEvent extends EventWithHoldAdapter { protected readonly busRegister: RegisterTester; readonly packFormat: string; constructor(busRegister: RegisterTester); protected register(handler: (data: JDRegister) => void): JDRegister; protected deregister(handle: unknown): void; protected maybeGetValue(raw: PackedValues): number | undefined; protected valueWithinCondition(value: number, requirement: number | [number, number]): boolean; } declare class BaseRegisterUpdateEvent extends BaseRegisterEvent { protected readonly busRegister: RegisterTester; protected trigger: number | [number, number]; protected options: RegisterValueOptions; constructor(busRegister: RegisterTester, trigger: number | [number, number], options: RegisterValueOptions); protected processTrigger(register: JDRegister): boolean; } declare class RegisterUpdateEvent extends BaseRegisterUpdateEvent { hold(): RegisterUpdateEventHold; } declare class RegisterUpdateEventHold extends BaseRegisterUpdateEvent { protected readonly busRegister: RegisterTester; protected trigger: number | [number, number]; protected options: RegisterValueOptions; constructor(busRegister: RegisterTester, trigger: number | [number, number], options: RegisterValueOptions); protected processHold(register: JDRegister): void; } declare class RegisterHold extends BaseRegisterEvent { protected readonly busRegister: RegisterTester; protected value: number | [number, number]; constructor(busRegister: RegisterTester, value: number | [number, number]); protected processHold(register: JDRegister): void; } export declare class RegisterTester { readonly register: JDRegister; constructor(register: JDRegister); get name(): string; onValue(trigger: number | [number, number], options?: RegisterValueOptions): RegisterUpdateEvent; hold(value: number | [number, number]): RegisterHold; } export {}; //# sourceMappingURL=registerwrapper.d.ts.map