import { AbstractEventEmitter } from '@sprucelabs/mercury-event-emitter';
import CommandServiceImpl from '../../services/CommandService';
import { SpruceTestResults } from './test.types';
export default class TestRunner extends AbstractEventEmitter<TestRunnerContract> {
    private cwd;
    private commandService;
    private wasKilled;
    private testResults;
    constructor(options: {
        cwd: string;
        commandService: CommandServiceImpl;
    });
    run(options?: {
        pattern?: string | null;
        debugPort?: number | null;
    }): Promise<SpruceTestResults & {
        wasKilled: boolean;
    }>;
    private isDebugMessage;
    hasFailedTests(): boolean;
    hasSkippedTests(): boolean;
    kill(): void;
    private resolvePathToJest;
}
declare const testRunnerContract: {
    eventSignatures: {
        'did-error': {
            emitPayloadSchema: {
                id: string;
                fields: {
                    message: {
                        type: "text";
                        isRequired: true;
                    };
                };
            };
        };
        'did-update': {
            emitPayloadSchema: {
                id: string;
                fields: {
                    results: {
                        type: "raw";
                        isRequired: true;
                        options: {
                            valueType: string;
                        };
                    };
                };
            };
        };
    };
};
type TestRunnerContract = typeof testRunnerContract;
export {};
