/*!
 * Copyright 2017 - 2020 by ChartIQ, Inc.
 * All rights reserved.
 */
/**
 * Singleton API to Finsemble System Manager
 */
declare class TestPoint {
    testPointsEnabled: boolean;
    actionMap: Record<string, Function>;
    state: any;
    constructor();
    start(): Promise<void>;
    /**
     * Enables testpoints.  Must be invoked once from somewhere in Finsemble for testpoints to work.  Can be involved multiple times.
     *
     * @memberof TestPoint
     */
    enableTestPoints(): void;
    /**
     * Triggers a specific snapshot, capturing the data to be returned by waitForSnapshot for the given snapshot name
     *
     * @param {string} name snapshot name
     * @param {*} snapshotData data
     * @memberof TestPoint
     */
    triggerSnapshot<T = any>(name: string, snapshotData: T): void;
    /**
     * Waits for a specific snapshot point to be reached from somewhere in Finsemble, then returns the snapshot data.
     *
     * @param {*} snapshotName snapshot name to wait for
     * @param {number} [count=1] the number of times the testpoint name must be triggered before returning
     * @param {*} [timeout=SnapshotPointWaitTimeout] How long in milliseconds to wait before failing
     * @returns
     * @memberof TestPoint
     */
    waitForSnapshot<T = any>(snapshotName: string, count?: number, timeout?: number): Promise<T | null>;
    /**
     * Fires customized test action(s) corresponding to specified name -- causes the correspond onAction() to be triggered.
     * Typically used within a Live Mocha test.
     *
     * @param name name of action to fire
     * @param data data to pass to action
     */
    triggerAction<T = any>(name: string, data?: T): void;
    /**
     * Used to implement customized actions for the specificed name -- the callback is invoked when a corresponding triggerAction() is called.
     * Typically used within unit under test to set test state or simulate user actions.
     *
     * @param name name of action to look for
     * @param callback function to invoke when action fires
     */
    onAction<T = any>(name: string, callback: (arg0: T) => void): void;
}
declare const testPoint: TestPoint;
export default testPoint;
//# sourceMappingURL=testPoint.d.ts.map