///
import type * as d from '@stencil/core/internal';
import { InMemoryFileSystem } from '../compiler/sys/in-memory-fs';
export declare function shuffleArray(array: any[]): any[];
/**
* Testing utility to validate the existence of some provided file paths using a specific file system
*
* @param fs the file system to use to validate the existence of some files
* @param filePaths the paths to validate
* @throws when one or more of the provided file paths cannot be found
*/
export declare function expectFilesExist(fs: InMemoryFileSystem, filePaths: string[]): void;
/**
* Testing utility to validate the non-existence of some provided file paths using a specific file system
*
* @param fs the file system to use to validate the non-existence of some files
* @param filePaths the paths to validate
* @throws when one or more of the provided file paths is found
*/
export declare function expectFilesDoNotExist(fs: InMemoryFileSystem, filePaths: string[]): void;
export declare function getAppScriptUrl(config: d.ValidatedConfig, browserUrl: string): string;
export declare function getAppStyleUrl(config: d.ValidatedConfig, browserUrl: string): string;
/**
* Utility for silencing `console` functions in tests.
*
* When this function is first called it grabs a reference to the `log`,
* `error`, and `warn` functions on `console` and then returns a per-test setup
* function which sets up a fresh set of mocks (via `jest.fn()`) and then
* assigns them to each of these functions. This setup function will return a
* reference to each of the three mock functions so tests can make assertions
* about their calls and so on.
*
* Because references to the original `.log`, `.error`, and `.warn` functions
* exist in closure within the function, it can use an `afterAll` call to clean
* up after itself and ensure that the original implementations are restored
* after the test suite finishes.
*
* An example of using this to silence log statements in a single test could look
* like this:
*
* ```ts
* describe("my-test-suite", () => {
* const setupConsoleMocks = setupConsoleMocker()
*
* it("should log a message", () => {
* const { logMock } = setupConsoleMocks();
* myFunctionWhichLogs(foo, bar);
* expect(logMock).toBeCalledWith('my log message');
* })
* })
* ```
*
* @returns a per-test mock setup function
*/
export declare function setupConsoleMocker(): ConsoleMocker;
interface ConsoleMocker {
(): {
logMock: jest.Mock;
warnMock: jest.Mock;
errorMock: jest.Mock;
};
}
/**
* the callback that `withSilentWarn` expects to receive. Basically receives a mock
* as its argument and returns a `Promise`, the value of which is returns by `withSilentWarn`
* as well.
*/
declare type SilentWarnFunc = (mock: jest.Mock) => Promise;
/**
* Wrap a single callback with a silent `console.warn`. The callback passed in
* receives the mocking function as an argument, so you can easily make assertions
* that it is called if necessary.
*
* @param cb a callback which `withSilentWarn` will call after replacing `console.warn`
* with a mock.
* @returns a Promise wrapping the return value of the callback
*/
export declare function withSilentWarn(cb: SilentWarnFunc): Promise;
export {};