/**
 * Copyright (c) Microsoft Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type { ImportInfo } from './tsxTransform';
import type { PlaywrightTestConfig as BasePlaywrightTestConfig } from 'playwright/types/test';
import type { FullConfig } from 'playwright/types/testReporter';
import type { InlineConfig, Plugin, TransformResult } from 'vite';
export type CtConfig = BasePlaywrightTestConfig['use'] & {
    ctPort?: number;
    ctTemplateDir?: string;
    ctCacheDir?: string;
    ctViteConfig?: InlineConfig | (() => Promise<InlineConfig>);
};
export type ComponentRegistry = Map<string, ImportInfo>;
export type ComponentDirs = {
    configDir: string;
    outDir: string;
    templateDir: string;
};
export declare function resolveDirs(configDir: string, config: FullConfig): Promise<ComponentDirs | null>;
export declare function resolveEndpoint(config: FullConfig): {
    https: {} | undefined;
    host: string;
    port: any;
};
export declare function createConfig(dirs: ComponentDirs, config: FullConfig, frameworkPluginFactory: (() => Promise<Plugin>) | undefined, supportJsxInJs: boolean): Promise<any>;
export declare function populateComponentsFromTests(componentRegistry: ComponentRegistry, componentsByImportingFile?: Map<string, string[]>): Promise<void>;
export declare function hasJSComponents(components: ImportInfo[]): boolean;
export declare function transformIndexFile(id: string, content: string, templateDir: string, registerSource: string, importInfos: Map<string, ImportInfo>): TransformResult | null;
export declare function frameworkConfig(config: FullConfig): {
    registerSourceFile: string;
    frameworkPluginFactory?: () => Promise<Plugin>;
};
//# sourceMappingURL=viteUtils.d.ts.map