import * as core from './core/index';
import { ProjectConfig, ExtensionConfig } from './core/types';
export declare class TestSetup {
    testSuiteSuffixName: string;
    tempFolderPath: string;
    projectFolderPath: string | undefined;
    testDataFolderPath: string | undefined;
    aliasAndUserNameWereVerified: boolean;
    scratchOrgAliasName: string | undefined;
    scratchOrgId: string | undefined;
    private configuredExtensions;
    private constructor();
    get tempProjectName(): string;
    static setUp(testReqConfig: core.TestReqConfig): Promise<TestSetup>;
    /**
     * Configure extensions based on test requirements
     * @param testReqConfig Test requirement configuration
     */
    private configureExtensions;
    /**
     * Get extensions that should be verified during test setup
     */
    getExtensionsToVerify(): ExtensionConfig[];
    /**
     * Get extensions that should be installed with a specific installation option
     * @param option Installation option to filter by
     */
    getExtensionsToInstall(option: 'always' | 'never' | 'optional'): ExtensionConfig[];
    tearDown(shouldCheckForUncaughtErrors?: boolean): Promise<void>;
    private initializeNewSfProject;
    setUpTestingWorkspace(projectConfig: ProjectConfig): Promise<void>;
    private throwError;
    updateScratchOrgDefWithEdition(scratchOrgEdition: core.OrgEdition): void;
    private setJavaHomeConfigEntry;
    private setWorkbenchHoverDelay;
    private setMaximumWindowSize;
    private setWindowDialogStyle;
}
