import { JDBus } from "../jdom/bus"; export interface ConsoleUi { log: (msg: string) => void; } export declare class DebugConsoleUi implements ConsoleUi { log(msg: string): void; } export interface HoldingListener { holdingPromise: Promise; terminateHold: () => void; } export interface EventWithHold { triggerPromise?: Promise; holdingListener?: HoldingListener; } export declare abstract class TesterEvent { abstract makePromise(): EventWithHold; } export declare class TestErrorBase extends Error { constructor(message: string); } export declare class WaitTimeoutError extends TestErrorBase { } export interface WaitTimingOptions { after?: number; within?: number; tolerance?: number; } export declare class WaitSynchronizationError extends TestErrorBase { } export interface SynchronizationTimingOptions extends WaitTimingOptions { synchronization?: number; } export interface TestDriverInterface { waitFor(event: TesterEvent, options?: WaitTimingOptions): Promise; waitFor(event: TesterEvent[], options?: SynchronizationTimingOptions): Promise; } export declare class TestDriver implements TestDriverInterface { protected readonly bus: JDBus; protected readonly ui: ConsoleUi; constructor(bus: JDBus, ui: ConsoleUi); log(str: string): void; protected makePromiseTimed(promise: Promise, options: WaitTimingOptions): Promise; waitFor(events: TesterEvent | TesterEvent[], options?: SynchronizationTimingOptions): Promise; } //# sourceMappingURL=base.d.ts.map