import { CdmCorpusDefinition, cdmLogCode } from '../internal';
export declare const testHelper: {
    /**
     * The path of the TestDataFolder.
     * Here will be found input files and expected output files used by tests
     */
    testDataPath: string;
    /**
     * The path of the CDM Schema Documents Folder.
     */
    schemaDocumentsPath: string;
    /**
     * The adapter path to the top-level manifest in the CDM Schema Documents folder. Used by tests where we resolve the corpus.
     * This path is temporarily pointing to the applicationCommon manifest instead of standards due to performance issues when resolving
     * the entire set of CDM standard schemas, after 8000+ F&O entities were added.
     */
    cdmStandardsSchemaPath: string;
    /**
     * The path of the CDM Sample Schema Documents Folder.
     */
    sampleSchemaFolderPath: string;
    /**
     * The log codes that are allowed to be logged without failing the test\
     */
    ignoredLogCodes: Set<string>;
    getInputFolderPath: (testSubpath: string, testName: string, isLanguageSpecific?: boolean) => string;
    getExpectedOutputFolderPath: (testSubpath: string, testName: string) => string;
    getActualOutputFolderPath: (testSubpath: string, testName: string) => string;
    getInputFileContent(testSubpath: string, testName: string, fileName: string): string;
    getExpectedOutputFileContent(testSubpath: string, testName: string, fileName: string, isLanguageSpecific?: boolean): string;
    getTestActualOutputFolderName(): string;
    writeActualOutputFileContent(testSubpath: string, testName: string, fileName: string, fileContent: string): void;
    /**
     * Compares the content of two Typescript objects.
     * Lists are considered equal if they have the same elements, no matter the order.
     * @param expected The expected value 'actual' should be compared with
     * @param actual The actual value that is to be compared with 'expected'
     * @param logError Whether differences between objects should be logged to console or not.
     * @returns Whether the objects are equal.
     */
    compareObjectsContent(expected: any, actual: any, logError?: boolean): boolean;
    deleteFilesFromActualOutput(actualOutputFolderPath: string): void;
    assertSameObjectWasSerialized(expected: string, actual: string): void;
    /**
     * Asserts two strings representing file content are equal. It ignores differences in line ending.
     * @param expected String representing expected file content.
     * @param actual String representing actual file content.
     */
    assertFileContentEquality(expected: string, actual: string): void;
    assertFolderFilesEquality(expectedFolderPath: string, actualFolderPath: string, differentConfig?: boolean): void;
    assertObjectContentEquality(expected: any, actual: any): void;
    setsEqual(a: Set<string | number | cdmLogCode>, b: Set<string | number | cdmLogCode>): boolean;
    createCorpusForTest(testsSubpath: string, testName: string): CdmCorpusDefinition;
    /**
     * Creates a corpus to be used by the tests, which mounts inputFolder, outputFolder, cdm, and remoteAdapter. Will fail on any unexpected warning/error.
     * @param testSubpath               The root of the corpus files.
     * @param testName                  The test name.
     * @param testInputDir              The test input directory.
     * @param isLanguageSpecific        Indicate whether there is subfolder called TypeScript, it's used when input is different compared with other languages.
     * @param expectedCodes             The error codes that are expected, and they should not block the test.
     * @param noInputAndOutputFolder    No input and output folder needed.
     */
    getLocalCorpus(testSubpath: string, testName: string, testInputDir?: string, isLanguageSpecific?: boolean, expectedCodes?: Set<cdmLogCode>, noInputAndOutputFolder?: boolean): CdmCorpusDefinition;
    /**
    * Fail on an unexpected message.
    * @param corpus                 The corpus object.
    * @param message                The unexpected error messages
    * @param expectedCodes          The expected error codes.
    */
    failOnUnexpectedFailure(corpus: CdmCorpusDefinition, message: string, expectedCodes?: Set<cdmLogCode>): void;
    /**
    *Asserts the logcode, if unexpected log code is present in log codes recorded list.
    *Asserts in logcode, if expected log code in log codes recorded list (isPresent = false)
    * @param corpus The corpus object.
    * @param expectedcode The expectedcode cdmlogcode.
    * @param isPresent The flag to decide how to assert the test.
    */
    expectCdmLogCodeEquality(corpus: CdmCorpusDefinition, expectedCode: cdmLogCode, isPresent: boolean): void;
};
